不同的操作系统,各有直接输入Unicode字符的方法:
- 基于X Window System的Linux系统,如Ubuntu的Gnome Terminal,首先按下Ctrl+Shift+U,然后输入16进制Unicode数,如interpunct间隔符输入00b7,最后按空格键或者回车键;
- Microsoft Windows系统,按下Alt+unicode 表示interpunct间隔符 如
在notepad里,(中文系统下)
按住Alt 然后按52946最后放开Alt
按住Alt 然后按45230最后放开Alt
按住Alt 然后按50403最后放开Alt
你会看到"我爱你"三个字。
Windows 字符集查看
windows+R-> charmap =====>
字符集
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。
字符编码,字符集和字符的转换关系。
计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。
下面就是屌
这个字在各种编码下的十六进制和二进制编码结果
字符集 | 16进制编码 | 对应的二进制数据 |
---|---|---|
UTF-8 | 0xE5B18C | 1110 0101 1011 0001 1000 1100 |
UTF-16 | 0x5C4C | 1011 1000 1001 1000 |
GBK | 0x8CC5 | 1000 1100 1100 0101 |
注意:Unicode字符集有多种编码方式,如UTF-8、UTF-16等;ASCII只有一种;大多数MBCS(包括GB2312)也只有一种。
常用编码简介:
字符与编码在程序中的实现
程序中的字符与字节
在 C++ 和 Java 中,用来代表“字符”和“字节”的数据类型,以及进行编码的方法:
类型或操作 | C++ | Java |
字符 | wchar_t | char |
字节 | char | byte |
ANSI 字符串 | char[] | byte[] |
UNICODE 字符串 | wchar_t[] | String |
字节串→字符串 | mbstowcs(), MultiByteToWideChar() | string = new String(bytes, "encoding") |
字符串→字节串 | wcstombs(), WideCharToMultiByte() | bytes = string.getBytes("encoding") |
以上需要注意几点:
- Java 中的 char 代表一个“UNICODE 字符(宽字节字符)”,而 C++ 中的 char 代表一个字节。
- MultiByteToWideChar() 和 WideCharToMultiByte() 是 Windows API 函数。
详细参考链接: