我使用Ubuntu 12.04
我想知道我可以用C如何c從控制檯讀取的中國和文件
setlocale(LC_ALL, "zh_CN.UTF-8");
scanf("%s", st1);
for (b = 0; b < max_w;b++)
{
printf("%d ", st1[b]);
if (st1[b] == 0)
break;
}
對於這個代碼讀中國,當我輸入英文,它輸出精,但如果我輸入中文像「的」,它輸出
Enter word or sentence (EXIT to break): 的
target char seq :
-25 -102 -124 0
我想知道爲什麼在數組中有負值。
此外,我發現使用fscanf讀取的文件中的「的」字節與從控制檯讀取的不同。
簡短的回答:在控制檯讀中國,你需要使用UTF庫,例如:'libconv'。 – jrd1
爲什麼?這非常好。 @cloudygoose:有什麼問題?輸出是正確的。 – deviantfan