簡體   English   中英

如何使用ICU的庫打印文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM