我在C中使用iconv.h
將編碼從ISO-8859-*
轉換爲UTF-8
。我需要傳入的流在瀏覽器中顯示。但轉換後的結果不會顯示在chrome中。在其他瀏覽器中,它工作正常。 串的示例如下iconv轉換爲UTF-8會導致不可顯示的字符集
char *str = "\x05\x86\x53";
char dest_str[100];
char *out = dest_str;
size_t inbytes = strlen(str);
size_t outbytes = sizeof dest_str;
printf("Before Conversion: %2x %2x %2x\n",str[0],str[1],str[2]);
iconv_t conv = iconv_open("UTF-8//TRANSLIT", "ISO-8859-9");
if (conv == (iconv_t)-1) {
perror("iconv_open");
return 1;
}
if (iconv(conv, &str, &inbytes, &out, &outbytes) == (size_t)-1) {
perror("iconv");
return 1;
}
dest_str[sizeof dest_str - outbytes] = 0;
printf("After Conversion: %2x %2x %2x\n",dest_str[0],dest_str[1],dest_str[2]);
puts(dest_str);
輸出給出:轉換前:5 ffffff86 53
轉換後:5 ffffffc2 ffffff86
正在發生正確的轉換?如何解決Chrome中不可顯示字符的問題?
你期待什麼顯示? – JeremyP