unicode

_UNICODE与UNICODE宏

喜你入骨 提交于 2020-04-04 04:47:37
拿vc6.0来说:1、首先创建一个简单的win32 Application。2、设置工程预定义了UNICODE而没有预定义_UNICODE(工程->设置->预定义栏添加UNICODE)3、在WinMain主函数所在CPP文件包含<TChar.h>4、当在WinMain里添加 TChAR str[6] = "123"时,TCHAR被解析为unsigned short类型,当调用函数_tcscpy时,参数被解析为char类型5、修改工程预定义_UNICODE而没有预定义UNICODE,当在WinMain里添加 TChAR str[6] = "123"时,TCHAR被解析为char类型,当调用函数_tcscpy时,参数被解析为unsigned short类型6、修改工程预定义_UNICODE和UNICODE,当在WinMain里添加 TChAR str[6] = "123"时,TCHAR被解析为unsigned short类型,当调用函数_tcscpy时,参数被解析为unsigned short类型 来源: https://www.cnblogs.com/handongdong/archive/2011/10/26/2225021.html

杂项-Unicode:Unicode

大兔子大兔子 提交于 2020-04-04 04:46:21
ylbtech-杂项-Unicode:Unicode Unicode( 统一码 、万国码、单一码)是计算机科学领域里的一项业界标准,包括 字符集、编码方案 等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的 二进制 编码, 以满足跨语言、跨平台进行文本转换、处理的要求 。1990年开始研发,1994年正式公布。 1. 返回顶部 1、 中文名: 统一码 外文名:Unicode 也 称:万国码 解 释“”计算机科学领域里的一项业界标准 目录 1 起源 2 作用 3 层次 4 方式 ▪ UTF-8 ▪ UTF-16 ▪ UTF-32 ▪ 字节序 5 分布 6 环境 7 字集 8 输入 ▪ 综述 ▪ 方法 ▪ 其他 9 使用 10 简史 11 编码表 2、 2. 返回顶部 3. 返回顶部 4. 返回顶部 5. 返回顶部 1、 https://baike.baidu.com/item/Unicode/750500 2、 6. 返回顶部 作者: ylbtech 出处: http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 来源: https://www.cnblogs.com/storebook/p

MFC用CFile写文件

瘦欲@ 提交于 2020-04-04 04:01:25
其实,unicode字符已经被Cfile输入了文件当中。但是字处理软件不知道其中是unicode字符,将他们统统当做了单字节字符处理。所以我只需要加入unicode的识别码就行了 CFile file; if(file.Open(path.GetBuffer(), CFile::modeCreate | CFile::modeWrite)) { WORD unicode = 0xFEFF; file.Write(&unicode,2); //此处写入unicode的识别码 file.Write(content, wcslen(content)*sizeof(wchar_t)); CString strEnter; strEnter="\r\n"; file.Write(strEnter, 4); file.Close(); } 来源: https://www.cnblogs.com/wang-can/p/3301935.html

utf8字符集下的比较规则

萝らか妹 提交于 2020-04-03 18:39:59
前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4。这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用utf8mb4。其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同的比较规则会影响字符字段的比较和排序。本文以utf8为例,介绍下常用的几个比较规则的不同。 1.utf8下比较规则概览 我们先查看下utf8字符集下支持的所有比较规则: mysql> SHOW COLLATION LIKE 'utf8\_%'; +--------------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+---------+-----+---------+----------+---------+ | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 | | utf8_bin |

winCE下Unicode编码

吃可爱长大的小学妹 提交于 2020-04-01 04:47:32
Unicode :宽字节字符集 1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数? 可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。 调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。 2. 如何对DBCS(双字节字符集)字符串进行操作? 函数 描述 PTSTR CharNext ( LPCTSTR ); 返回字符串中下一个字符的地址 PTSTR CharPrev ( LPCTSTR, LPCTSTR ); 返回字符串中上一个字符的地址 BOOL IsDBCSLeadByte( BYTE ); 如果该字节是DBCS字符的第一个字节,则返回非0值 3. 为什么要使用Unicode? (1) 可以很容易地在不同语言之间进行数据交换。 (2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 (3) 提高应用程序的运行效率。 Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么系统首先要将字符串转换成 Unicode,然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串

Unicode字符集和多字节字符集

拜拜、爱过 提交于 2020-04-01 04:23:52
在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号例如制表符。 后来,由于各国语言的加入,ASCII已经不能满足信息交流的需要,因此,为了能够表示其它国家的文字,各国在ASCII的基础上制定了自己的字符集,这些从ANSI标准派生的字符集被习惯的统称为ANSI字符集,它们正式的名称应该是MBCS(Multi-Byte Chactacter System,即多字节字符系统)。这些派生字符集的特点是以ASCII 127 bits为基础,兼容ASCII 127,他们使用大于128的编码作为一个Leading Byte,紧跟在Leading Byte后的第二(甚至第三)个字符与Leading Byte一起作为实际的编码。这样的字符集有很多,我们常见的GB-2312就是其中之一。 例如在GB-2312字符集中,“连通”的编码为C1 AC CD A8,其中C1和CD就是Leading Byte

宽字符,Ansic和Unicode

≯℡__Kan透↙ 提交于 2020-04-01 04:23:15
电脑发展的初期,只是在美国等英文国家使用,英文只有26个字母和其它字符,一个字节最多可以表示256个字符,如字母“A”用0x41(二进制01000001)表示,字母“a”用0x61(二进制01100001)表示。为了使各家电脑公司生产的电脑统一,美国搞了个国家标准ANSI,一直沿用至今,我们今天用的电脑普通情况下使用的都ANSI编码。 ANSI编码,每个字符占一个字节,但最多只能表示256个字符。 汉字等东亚语言字符怎么办呢?于是采用两个字节共同表示一个汉字的方法。二个字节理论上可以表示65535个字符。 因为ANSI标准是用一个字节的7个位表示一个普通字符,最高位为0(如字母“A”的二进制01000001),所以表示汉字就采用最高位为1来表示。如“中”字就是用0xD6、0xD0表示(二进制11010110、11010000)。 程序员判断一个字符是否为汉字,就是通过最高位是否为1来判断的。 但是,中国大陆的汉字表示方法叫GB码(中国国家标准,如GB2312),中国台湾、香港的汉字表示方法叫BIG5码(大五码,台湾一家民营公司提出),还有韩、日等字符,还是造成了计算机文字表示的不统一。 所以,在W98时代,电脑上网、收发邮件等经常出现乱码的现象(就是文字标准不统一造成的) ANSI编码字符,叫多字节字符 UNICODE编码,每个字符占二个字节。也叫万国码(一种国际标准字符集

Windows编程 Windows下Unicode编码

╄→尐↘猪︶ㄣ 提交于 2020-04-01 04:19:56
我们知道在ascii编码,每个字符占用一个字节,这样能够表示的字符数远远不够表示世界所有语言的符号,所以Unicode编码就是出现了,当然Unicode也有8位 16位 32位的编码,UTF-8、UTF-16、UTF-32分别以char、char16_t、char32_t作为编码单位,本文讨论16位 即UTF-16,(注: char16_t 和 char32_t 是 C++ 11 标准新增的关键字。如果你的编译器不支持 C++ 11 标准,请改用 unsigned short 和 unsigned long。) 当然本文着重讨论Unicode在Windows中的应用,至于具体细节以及原理上的东西,本人才疏学浅,不配在此谈论此问题,呵呵。还请各位到Google去寻找大牛吧。。由于个人能力有限,文中难免有错误之处,还请各位多多批评和指正,多多包涵才是。 许久以前我在学习MFC的过程中,用GetDlgItemText获取Edit Control的值,其得到的值是CString,我们看下该函数的原型: int GetDlgItemText( HWND hDlg , int nID, LPTSTR lpStr, int nMaxCount) const; int GetDlgItemText( int nID, CString& rString) const;

Unicode字符集

我们两清 提交于 2020-04-01 04:18:59
Unicode字符集的出现是为了弥补ASCII码只能表示128个字符的限制。在实际应用中,如若我们想显示汉字或日文等等,显然使用ASCII是不可能的。Unicode占用了两个字节,即16位,能表示的字符高达65536。即使像汉字这样庞大的语言,也不过3W左右的字符,所以Unicode足够应付。当然实际中可能很少用到这种字符集,咱们可以将其作为一项拓展知识面来了解下。 在C语言中,我们有如下定义:char c='A';变量c只需要一个字节来保存,并用十六进制数0x41来初始化,0x41是A的ASCII码。 我们也可以定义:char *p = “hello!”;因为windows是一个32位的操作系统,所以指针变量p需要四个字节来保存。当然,后面的字符串需要7个字节来保存。 宽字符 Unicode或者宽字符都没有改变char数据型态在C中的含义。char继续表示1个字节的储存空间,sizeof (char)继续返回1。理论上,C中1个字节可比8位长,但对我们大多数人来说,1个字节(也就是1个char)是8位宽。 C中的宽字符基于wchar_t数据型态,它在几个表头文件包括 WCHAR.H 中都有定义,像这样: typedef unsigned short wchar_t ; 因此,wchar_t数据型态与无符号短整数型态相同,都是16位宽。 要定义包含一个宽字符的变量,可使用下面的语句

winCE下Unicode编码

最后都变了- 提交于 2020-04-01 04:14:30
Unicode :宽字节字符集 1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数? 可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。 调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。 2. 如何对DBCS(双字节字符集)字符串进行操作? 函数 描述 PTSTR CharNext ( LPCTSTR ); 返回字符串中下一个字符的地址 PTSTR CharPrev ( LPCTSTR, LPCTSTR ); 返回字符串中上一个字符的地址 BOOL IsDBCSLeadByte( BYTE ); 如果该字节是DBCS字符的第一个字节,则返回非0值 3. 为什么要使用Unicode? (1) 可以很容易地在不同语言之间进行数据交换。 (2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 (3) 提高应用程序的运行效率。 Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么系统首先要将字符串转换成 Unicode,然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串