我想用C
语言将 2字节ASCII(ISO / IEC 8859-1)Latin-1字符转换为UTF8字符。
如this website所述,Latin-1字符的值从 C3 80
到 C3 BF
。
以下是信息。 我有一个现成的代码,我想显示一个带有Latin-1字符集的键盘。 已经实现了一些逻辑用于解码目的,但它仅在某些特定条件下工作。
char key_latin[20]; // one ROW of keyboard
unsigned int codepoint;
key_latin[0]=0xC3;
key_latin[1]=0x00;
key_latin[2]=0xC3;
key_latin[3]=0x00;
codepoint = ((key_latin[0] & 0x1C) << 6) + (key_latin[0] & 0x03) <<6) + key_latin[1] & 0x3F); //implemented logic
然后它正确显示'À'和{{1}} = 0xC0的值,但它只显示一个字符,其他字符不显示在同一行中。
当我在下面做的时候,(作为上述链接的参考)
codepoint
它在屏幕上没有显示任何内容。
我的主要观点是,
如何显示或编码 2字节ASCII(ISO / IEC 8859-1) Latin-1 到 UTF8 到
char key_latin[20]; // one ROW of keyboard unsigned int codepoint; key_latin[0]=0xC3; key_latin[1]=0xA0; key_latin[2]=0xC3; key_latin[3]=0xA1; codepoint = ((key_latin[0] & 0x1C) << 6) + (key_latin[0] & 0x03) <<6) + key_latin[1] & 0x3F); //implemented logic
?是否有必要在编码中获取其他1字节
C
的值?
请告诉我您关于显示ASCII(ISO / IEC 8859-1)Latin-1字符的建议和可能的方法。
[如果需要有关此问题的更多信息,请告知我们。]