Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JIS X 208到UNICODE的编码转换 如何在C++中转换JIS X 208编码字符串为Unicode?一个特定于VC++的答案会很有帮助_C++_Unicode - Fatal编程技术网

从JIS X 208到UNICODE的编码转换 如何在C++中转换JIS X 208编码字符串为Unicode?一个特定于VC++的答案会很有帮助

从JIS X 208到UNICODE的编码转换 如何在C++中转换JIS X 208编码字符串为Unicode?一个特定于VC++的答案会很有帮助,c++,unicode,C++,Unicode,我发现理解困难的更大问题是日语字符的编码太多。JIS本身有很多版本,然后是Shift JIS。如果有人能用英语很好地解释这些问题,那就太好了 我仔细看了看。这确实列出了日语(JIS 0208-1990和0121-1990),但我想知道JIS 0208和JIS X 0208之间有什么区别。该项目包含许多从Unicode转换到Unicode的功能。它适用于大多数操作系统,包括Windows。它将处理几乎所有代码页之间的转换 据我所见,JIS X 0208和JIS 0208似乎是同一事物名称的两个变体

我发现理解困难的更大问题是日语字符的编码太多。JIS本身有很多版本,然后是Shift JIS。如果有人能用英语很好地解释这些问题,那就太好了

我仔细看了看。这确实列出了日语(JIS 0208-1990和0121-1990),但我想知道JIS 0208和JIS X 0208之间有什么区别。

该项目包含许多从Unicode转换到Unicode的功能。它适用于大多数操作系统,包括Windows。它将处理几乎所有代码页之间的转换

据我所见,JIS X 0208和JIS 0208似乎是同一事物名称的两个变体,即实际代码页是相同的

wikipedia关于JIS 0208的文章,希望它能回答您的一些问题,因为它更深入地了解了JIS的历史,而且它的不同版本似乎已经过时并被取代了

是JIS X的编码,即将16位字符代码转换为8位表示的算法

我发现这个是从JIS到Unicode的,这个是从JIS X 0208到Unicode的


希望这能有所帮助。

X表示。所有JIS标准都有一些分类,因此“JIS 0208”实际上只是用作“JIS X 0208”的缩写。“JIS X 0208”是字符集规范的名称(即,它用字符编号定义字符的抽象形状)。 本规范未定义如何对字符进行编码(即字节数组表示)。 (JIS X 0208、ISO-2022-JP、EUC-JP和Shift_JIS有三种主要编码。)

所以“JIS X 0208编码字符串”是不明确的。 如果您的意思是“CP932(这是Shift_JIS最广泛使用的变体)编码字符串”,则可以使用带有CP932的MultiByteToUnicode()Win32API作为第一个参数

JIS 0208和JIS X 0208可能相同(后者是规范的正确名称)


MSDN中的“0121-1990”必须是“0212-1990”的打字错误。它也是一种字符集规范,包含很少使用的(汉字)字符。

0213不是对过时的0208的简单更新。它的扩展与实际部署的0208超集(如Windows代码页932)冲突。正因为如此(而且因为希望正确操作的系统正在转向Unicode而不是任何与JIS相关的系统),0213及其变体“Shift-JIS-2004”几乎没有被采用。如果你在现实世界中遇到“Shift JIS”,它可能真的是代码页932。谢谢澄清。谢谢大家:)