ISO-8859-*
에서 UTF-8
으로 인코딩을 변환하려면 C에서 iconv.h
을 사용하고 있습니다. 들어오는 스트림을 브라우저에 표시해야합니다. 그러나 변환 후 결과가 크롬에 표시되지 않습니다. 다른 브라우저에서는 올바르게 작동합니다. 은 문자열의 샘플을iconv 표시 할 수없는 charchters에서 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
이 제대로 일어나고 전환인가? 크롬에서 표시 할 수없는 문자 문제를 해결하는 방법은 무엇입니까?
표시 될 것으로 예상되는 것은 무엇입니까? – JeremyP