在 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 函数。

本文对比了C++和Java中字符、字节及字符串的处理方式,并介绍了不同编码转换的方法,强调Java中的char为Unicode字符,而C++中的char为单字节。

被折叠的 条评论
为什么被折叠?



