[英]How to convert ISO-8859-1 to UTF-8 using libiconv in C++
我正在使用libcurl来获取一些HTML页面。
HTML页面包含一些字符引用,例如: סלקום
当我使用libxml2阅读此内容时,我得到:
是ISO-8859-1编码吗?
如果是这样,我如何将其转换为UTF-8以获取正确的单词。
谢谢
编辑:我得到了解决方案,MSalters是正确的,libxml2确实使用UTF-8。
我将此添加到eclipse.ini
-Dfile.encoding = utf-8
最后,我在Eclipse控制台上看到了希伯来语字符。 谢谢
否。这些实体对应于字符的Unicode序列号的十进制值。 例如,请参见此页面 。
因此,您可以将Unicode值存储为int
并使用一种算法将这些整数转换为UTF-8多字节字符。 参见UTF-8规范。
这个答案是在假设编码的文本以UTF-16返回的情况下给出的,事实证明并非如此。
我想编码是UTF-16或UCS2。 将其指定为iconv的输入。 可能还有字节序问题,请看这里
C风格的方式是(不检查清晰度):
iconv_t ic = iconv_open("UCS-2", "UTF-8");
iconv(ic, myUCS2_Text, inputSize, myUTF8-Text, outputSize);
iconv_close(ic);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.