如何在JIS C ++中将JIS X 208编码的字符串转换为UNICODE? VC ++特定的答案会有所帮助。
我发现难以理解的更大问题是日语字符的编码太多了。 JIS本身有很多版本,然后是Shift-JIS。如果有人能指出用英语对这些进行很好的解释,那将是很好的。
我浏览了code page identifiers in MSDN。这列出了日语(JIS 0208-1990和0121-1990),但我想知道JIS 0208和JIS X 0208之间的区别。
答案 0 :(得分:1)
ICU项目包含许多用于从Unicode转换和转换为Unicode的函数。它适用于大多数操作系统,包括Windows。它将处理来自/几乎所有代码页的转换。
从我所看到的,JIS X 0208和JIS 0208似乎是同一个名称的2个变体,即实际的代码页是相同的。
Here's关于JIS 0208的维基百科文章,希望它能回答你的一些问题,因为它更深入地介绍了JIS的历史,它的版本不同
答案 1 :(得分:1)
JIS X 0208似乎已过时并被JIS X 0213取代。
Shift JIS是JIS X的编码,即将16位字符代码转换为8位表示的算法。
我发现从JIS到Unicode的这个mapping table和从JIS X 0208到Unicode的这个C converter。
希望这有帮助。
答案 2 :(得分:1)
“JIS X 0208”是字符集规范的名称(即,它定义了具有字符编号的字符的抽象形状)。 规范。没有定义如何编码(即字节数组表示)字符。 (JIS X 0208有三种主要编码; ISO-2022-JP,EUC-JP和Shift_JIS。)
因此“JIS X 0208编码字符串”含糊不清。 如果您的意思是“CP932(最常用的Shift_JIS变体)编码字符串”,您可以使用MultiByteToUnicode()Win32API和CP932作为第一个参数。
JIS 0208和JIS X 0208可以相同(后者是规范的正确名称)。
MSDN中的“0121-1990”必须是“0212-1990”的拼写错误。它也是一个字符集规范,包含很少使用的(汉字)字符。
答案 3 :(得分:0)
X指的是type of standard。所有JIS标准都有一些分类,因此“JIS 0208”实际上只是用作“JIS X 0208”的缩写。