[英]How i can print a file with ICU's library?
我試圖打開,閱讀和打印包含chichar字符的文件。
UChar tab[50];
UFILE *file;
if ((file = u_fopen("test.txt", "r", uloc_getDefault(), "UTF-16BE")) == NULL)
return (fprintf(stderr, "error: fail top open test.txt"));
u_fgets(tab, 100, file);
u_printf("%s\n", tab);
u_fclose(file);
return (0);
在輸出中,我已經:“]] ??”
我不明白 但是,我已將語言環境的系統設置為中文,我的文件使用“ UTF-16BE”編碼。PS:我在Windows系統上編碼。..這非常重要!
問題可能出在您使用了不正確的格式說明符。 %s
格式說明符告訴u_printf()
在可變參數流中期望使用C樣式的char*
字符串。 如果要傳遞UTF-16 UChar*
字符串作為參數,則必須使用%S
說明符。 請參閱http://icu-project.org/apiref/icu4c/ustdio_8h.html上的文檔,特別是在“ 格式和解析規范 ”部分下。
所以改變
u_printf("%s\n", tab);
至
u_printf("%S\n", tab);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.