精华内容
下载资源
问答
  • Windows字符集 多字节->宽字节 加L L"abc" TEXT 自适应编码的转换 TCHAR 自适应编码的转换 //统计多字节字符串长度 int num = 0; char *p = "abc"; num = strlen...
    • 消息映射是一个将消息和成员函数相互关联的表
    • 消息由三个部分组成:消息值、wParam参数和lParam参数

    Windows字符集

    • 多字节->宽字节 加L L"abc"

    TEXT 自适应编码的转换

    TCHAR 自适应编码的转换

    //统计多字节字符串长度
    int num = 0;
    char *p = "abc";
    num = strlen(p);
    
    //统计宽字节的字符串长度
    wchar_t *p1 = L"avfsd";
    num = wcslen(p1);
    

    char * 与CString之间的转换 C++ string .c_str()

    //char * ->CString
    char *p2 = "cba";
    CString str = CString(p2);
    
    //CString -> char *
    CStringA tmp;
    tmp = str;
    char *p4 = tmp.GetBuffer();
    

    对话框类的数据交换和检验

    ​ 在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数**DoDataExchange()**来实现的,也叫做对话框的数据交换和检验机制。

    但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的.

    CDialogEx::UpdateData()函数的原型为:

    BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

    ​ 参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。

    一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理函数

    弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。CDialog::DoModal()函数的原型为:

    ​ virtual INT_PTR DoModal();

    ​ 返回值:整数值,指定了传递给CDialog::EndDialog(该函数用于关闭对话框)的nResult参数值。如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。

    ​ 调用了它对话框就会弹出,返回值是退出对话框时所点的按钮的ID,比如,我们点了“退出”按钮,那么DoModal返回值为IDCANCEL。

    展开全文
  • Windows mysql默认字符集修改一、通过MySQL命令行修改: set character_set_client=utf8;set character_set_connection=utf8;set character_set_database=utf8;set character_set_results=utf8;set character_set_...

    Windows mysql默认字符集修改

    一、通过MySQL命令行修改:

    set character_set_client=utf8;

    set character_set_connection=utf8;

    set character_set_database=utf8;

    set character_set_results=utf8;

    set character_set_server=utf8;

    对于字符集的支持细化到四个层次:
    服务器(server),数据库(database),数据表(table)和连接(connection)。

    查看系统的字符集和排序方式的设定可以通过下面的两条命令:

    SHOW VARIABLES LIKE ‘character%’;

    SHOW VARIABLES LIKE ‘collation_%’;

    二、通过MySQL文件修改编码方式

    1、在mysql的安装目录下找到my.ini文件(如果没有的话就把my-medium.ini复制,然后重命名为my.ini即可)

    2、在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并关闭

    [mysql]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
    3、重启mysql服务

    【默认编码 default-character-set=utf8 也可改为 default-character-set=gbk 】

    展开全文
  • Windows mysql如何修改默认字符集

    千次阅读 2018-07-10 14:13:50
    Windows mysql如何修改默认字符集一、通过MySQL命令行修改: set character_set_client=utf8;set character_set_connection=utf8;set character_set_database=utf8;set character_set_results=utf8;set character_...

    Windows mysql如何修改默认字符集

    一、通过MySQL命令行修改: 

    set character_set_client=utf8;
    set character_set_connection=utf8;
    set character_set_database=utf8;
    set character_set_results=utf8;
    set character_set_server=utf8;


    对于字符集的支持细化到四个层次:
    服务器(server),数据库(database),数据表(table)和连接(connection)。

     

    查看系统的字符集和排序方式的设定可以通过下面的两条命令:

    SHOW VARIABLES LIKE 'character%';

    SHOW VARIABLES LIKE 'collation_%';

     

    二、通过MySQL文件修改编码方式

    1、在mysql的安装目录下找到my.ini文件(如果没有的话就把my-medium.ini复制,然后重命名为my.ini即可)

    2、在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并关闭

    • [mysql]
    • default-character-set=utf8
    • [mysqld]
    • character-set-server=utf8

    3、重启mysql服务

    【默认编码 default-character-set=gbk 也可改为 default-character-set=utf8】  


    展开全文
  • 以前也零零散散看过一些字符编码的问题,今天看来这边博客,感觉很多东西都总结在里面,非常值得学习! 一、字符集的历史渊源 ...这里有两个不同的字符集:一个是Unicode字符集,另一个就是多字节字符集MBCS(M
    以前也零零散散看过一些字符编码的问题,今天看来这边博客,感觉很多东西都总结在里面,非常值得学习!
    

    一、字符集的历史渊源

    Windows编程时经常会遇到编码转换的问题,一直以来让刚接触的人摸不着头脑。其实只要弄清Win32程序使用的字符编码方式就清楚了,图1展示了一个Win32控制台项目的属性中的字符集选项。这里有两个不同的字符集:一个是Unicode字符集,另一个就是多字节字符集MBCS(Multi-Byte Character System),即熟知的ANSI字符集。

      

    1 Visual Studio Win32项目属性

    或许有人和我一样对这么一群“凭空出现”的字符集既痛恨又好奇,痛恨的是为什么不使用统一的方式对字符编码,还要在程序中不断的转换。好奇的原因亦是如此,既然躲不过这些东西,我们就探究一下它们的渊源。

    伴随着图形界面计算机的出现,字符集就应运而生了。要显示字符信息,就需要将之转换为二进制信息表示——编码。“可悲”的是计算机是美国人发明的,而英语就是26个英文字母和一些常用标点符号的组合,这些字符称为ASCLL字符集。它是使用1个字节的长度进行编码,也就是能表示256个不同的字符,实际上真正用到的可见字符不到128个。

    对于欧美国家的语言字符,ASCLL尚能应付自如,可是随着计算机的发展和普及,伴随着中文、日文、韩文等语言的需求,256个字符远远不能表示所有的常用字符了。这时就需要对原本的ASCLL进行改进以表示更多的字符,最简单最实际的做法就是扩展字节。将128作为分水岭,小于128的字符还是使用正常的一个字节的ASCLL进行表示,保证了英文的兼容。把大于128的字符作为一个引导字节,来决定后边字符的编码的长度和内容。通过这种变长的灵活编码方式,使得这种编码支持了几乎常用的所有语言的字符集,例如我们常用的GB2312GBKGB18030等等。由于ASCLL起初是ANSI的标准字符集,因此这种变长编码方式称为ANSI的多字节字符集MBCS,也称为为ANSI字符集

    然而好景并不长,由于变长的字符编码一般都是由各个国家自行编码的,因此没有一个统一的标准。尤其是中文的编码,在中国大陆、香港、台湾的中文编码方式截然不同,这就给信息的共享带来了很大的困难,最明显的是早期港台的网页到大陆打开时在没有编码转换时就无法正常显示。为了解决这个问题,国际Unicode联盟提出了统一的Unicode编码方式Unicode标准编码方式是使用2个字节编码, 16位编码可以表示65536个字符,即UTF-16,基本上能表示世界上所有语言常用的字符。但是对于非常用字符则不能表示完全,比如中国的汉字千变万化,光康熙字典收录的字就将近五万个。因此就出现UTF-32编码,它能表示65536*65536=4294967296个字符,足够表示世界上所有语言的字符了。另外,为了保持和ASCLL的兼容以及满足部分只能处理单字节的系统的需要,UTF-8的编码方式使用和MBCS的编码相似的方式进行编码,但是它不和任何一个MBCS编码兼容。

    由上可见,多种字符集的出现并非人为,而是计算机发展历史的需要。既然无法改变历史,我们只能顺应历史潮流,学习并正常使用这些千变万化的字符集。

    二、字符集的统一处理

    回到文章开始提到的Windows程序中使用两种编码方式,我们的目的是明确这两种编码方式的使用区别和相互转化的方式。

    首先看字符集使用的区别。

    如果使用MBCS字符集一般这么写:

    定义一个MBCS字符数组:char arr[LEN];或者CHAR arr[LEN];

    定义一个MBCS字符指针:char *p;或者LPSTR p;

    定义一个MBCS常量字符串指针:const char * cp;或者LPCSTR cp;

    定义一个MBCS常量字符串:cp=”Hello World!\n”;

    如果使用Unicode字符集一般这么写:

    定义一个Unicode字符数组:wchar_t arr[LEN];或者WCHAR arr[LEN];

    定义一个Unicode字符指针:wchar_t *p;或者LPWSTR p;

    定义一个Unicode常量字符串指针:const wchar_t * cp;或者LPCWSTR cp;

    定义一个Unicode常量字符串:cp=L”Hello World!\n”;

    一般字符集和串操作离不开。

    如果对MBCS字符串连接、复制、比较、求长运算为:strcatstrcpystrcmpstrlen

    如果对Unicode字符串连接、复制、比较、求长运算为:wcscatwcscpywcscmpwcslen

    类似的情况还有很多,那么这里就有很大的问题。如果源代码改变一下字符集的类型,那么源代码中所有和字符、串相关的函数、定义、声明都需要修改。不过这点早就被人考虑到了,Windows提供了头文件tchar.h来解决这些字符集通用的问题。它使用一个UNICODE宏来标识当前工程使用的字符集是MBCS还是Unicode。如果使用tchar如何书写上边的代码呢?

    对于相应的字符集定义和串操作如下:

    定义一个字符数组:TCHAR arr[LEN];

    定义一个字符指针:LPTSTR p;

    定义一个常量字符串指针:LPCTSTR cp;

    定义一个常量字符串:cp=_T(”Hello World!\n”);

    连接、复制、比较、求长运算为:_tcscat_tcscpy_tcscmp_tcslen

    这里的TCHAR不是一个新的类型,它是根据UNICODE宏来自动映射为charwchar_t,相应的LPTSTRLPCTSTR_T()宏亦是如此。

    将上述的宏定义抽象出来如下:

     
    #ifdef UNICODE
    typedef wchar_t WACHR,TCHAR;
    typedef wchar_t *LPWSTR,*LPTSTR;
    typedef const wchar_t *LPCWSTR,*LPCTSTR;
    #define _T(x) L ## x
    #define _tcscat wcscat
    #define _tcscpy wcscpy
    #define _tcscmp wcscmp
    #define _tcslen wcslen
    #else
    typedef char CHAR,TCHAR
    typedef char *LPSTR,*LPTSTR;
    typedef const char *LPCSTR,*LPCTSTR;
    #define _T(x) x
    #define _tcscat strcat
    #define _tcscpy strcpy
    #define _tcscmp strcmp
    #define _tcslen strlen
    #endif
     

    因此,使用TCHAR代替已有的字符、串定义、操作可以完成字符集处理的统一和通用化。

    三、字符集的相互转换

    然而事情并不是总是那么绝对,一个工程中很难保证所有的涉及字符集的地方都是使用的相同的字符集。在一个Unicode字符集的项目中使用MBCS的函数调用是常有的事情,例如系统API WinExec是执行一个Windows命令,它的第一个参数LPCSTR lpCmdLine标识了它只接收MBCS的字符串。为了满足这里“意外”的需求,必须来实现字符集间的相互转化。当然,Windows提供了这种转化方式,但是有多种方式:一种是使用系统提供的API WideCharToMultiByteMultiByteToWideChar,使用API转换参数较多,使用起来并不是很方便,但是转换结果比较稳定;另外C库提供一种简便的转换函数wcstombsmbstowcs,这两个函数参数简单,使用起来很方便,例如:     

     
    WCHAR src[20]=L"wide 字符";
    CHAR des[40];
    WCHAR des2[20];
    setlocale(LC_ALL,"");
    wcstombs(des,src,20);
    cout<<des<<endl;
    mbstowcs(des2,des,40);
    wcout<<des2<<endl;
     

    这两个函数使用前需要使用setlocale设置本地化信息,否则转换后的字符串会出现中文乱码情况。对于中文Windows操作系统使用setlocale(LC_ALL,"")即可,否则使用命令chcp查看活动代码页。对于中文操作系统结果为936,调用setlocale(LC_ALL,".936")也可以正常完成转化(注意936前的一个点符号)

     

    参考:http://www.cnblogs.com/fanzhidongyzby/archive/2012/08/28/2660562.html

    展开全文
  • Windows修改cmd字符集

    千次阅读 2014-06-12 14:06:46
    在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。 如果想正确显示UTF-8字符,可以按照以下步骤操作: 1、打开CMD.exe命令行窗口 2、通过 chcp命令改变代码页,UTF-8...
  • Windows系统ORACLE修改字符集

    千次阅读 2017-07-10 09:26:29
    1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN 2.输入set ORACLE_SID=你想进入的...4.将数据库启动到RESTRICTED模式下做字符集更改:  SQL> conn /as sys
  • 2.通过my.ini文件,修改character_set_client的字符集为utf8; 3.通过my.ini,修改character_set_server的字符集为utf8; 4.重启mysql之后查看字符集编码为; mysql的编码问题会继续在这里...
  • 最近在弄文件服务器/FTP,需要支持中文,因此要做此操作。 ...1、查看支持的字符集 #locale -a 里边可以看到(有zh_CN.gbk字符集): zh_CN zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.utf8 2、
  • oracle 字符集修改命令

    2008-12-04 13:12:47
    oracle 字符集修改命令oracle 字符集修改命令oracle 字符集修改命令oracle 字符集修改命令
  • CentOS6.5修改默认字符集为GBK(与Windows默认字符集一致)思路:Windows的默认编码为GBK,Linux的默认编码为UTF-8。因此,需要修改Linux的默认编码为GBK1、查看支持的字符集[plain] view plain copy#locale -a ...
  • Windows修改MySql默认字符集

    千次阅读 2017-08-04 09:27:54
    做开发时很多时候会碰到乱码的问题; 有的时候可能是从后台传到数据库时乱码,这时候可能就是数据库默认的字符集编码有问题 下面是我自己修改mysql默认字符集的过程
  • windows cmd修改字符集utf8

    千次阅读 2019-06-14 09:48:42
    chcp 65001
  • Windows95、XP……7操作系统自带的都是GBK字符集(含2万余汉字),是完全兼容GB2312(仅含0.67万汉字)的。不必将GBK字符集改为小字符集,否则会导致GBK字符集的大量字符不能显示。 检查和修改字符集的方法是: ➀...
  • 在使用Sybase中,经常我们在安装完Sybase后,使用isql或程序插入中文数据后,查询出数据为乱码...’),这是因为客户端的字符集和服务端的字符集不一致造成的,Sybase默认安装后默认字符集为:iso_1。通常使用中文...
  • 1、win+r 打开运行窗口 2、输入regedit打开注册表编辑器 3、定位到HKEY_CURRENT_USER\Console\%SystemRoot%_...4、修改其中Codepage选项,勾选十进制,windows默认是936 437(英语) 65001(utf-8) 936(GBK)
  • 1、找到my.cnf配置文件如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件...命令如下:[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf mysql5.5.10默认字符集修改,字
  • Win10 字符集修改为 UTF-8

    千次阅读 2020-09-21 14:30:25
    只需短短几步,就可轻松将字符集修改为 UTF-8。 依次点击控制面板 -> 时钟和区域 -> 区域,弹出区域对话框。在管理选项卡中找到非 Unicode 程序的语言,点击更改系统区域设置,勾选Beta 版:使用 Unicode UTF-...
  • Oracle字符集的查看查询和Oracle字符集的设置修改
  • 2019独角兽企业重金招聘Python工程师标准>>> chcp 65001 切换成UTF-...切换的字符集在 属性->属性选项卡,当前代码页 查看 转载于:https://my.oschina.net/u/3966437/blog/2993349
  • 如何修改windows下mysql的字符集

    千次阅读 2016-08-06 11:05:27
    (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如 default-character-set = utf8  character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart 使用 mysql> SHOW ...
  • 1.查看MySQL默认字符集 在命令行使用命令show variables like 'char%'; 这里我是在客户端打开mysql命令行的,直接使用windows命令行登录mysql数据库执行上面的命令是一样的效果。 2.文件修改 复制my-...
  • 修改数据库SERVER端字符集数据库字符集在创建后原则上不能更改。如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换,或通过ALTER DATABASE CHARACTER SET语句修改字符集,...
  • oracle字符集快速修改注册表, 方便在iso8859字符集、CGB2312字符集、16GBK字符集间切换,快捷方便实用
  • Windows字符集和_T宏

    千次阅读 2011-11-08 09:40:45
    Microsoft Windows98和Microsoft Windows NT 使用两种不同的字符集来构成字符和字符串。 Win98 及其以前 的版本使用 8位的ANSI字符集,这类似于许多程序员都熟悉的ASCII字符集。 Win NT和win2000使用16位的Unicode...
  • 引言 在使用MySQL数据库的过程中,如果字符集控制不当很容器出现乱码的情况,所以懂得如何修改MySQL默认的字符集相当重要,在本篇博客中主要介绍一下如何设置MySQL数据库的字符编码。 在本篇博客中MySQL的版本为:...
  • 本文主要讨论以下几个部分:如何查看查询oracle字符集修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。 一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,999
精华内容 61,599
关键字:

windows字符集修改