2013-03-07 396 views
0

我有一個帶有立陶宛符號的文本文件,但它不會正確讀取它。相反的Z我得到這個C++ fstream讀取utf-8字符集

設置地區沒有工作,要麼

setlocale(LC_ALL, "Lithuanian");

我缺少什麼?

+0

你怎麼知道你得到一個錯誤的符號? – 2013-03-07 12:11:11

+4

*從來沒有*使用視覺檢查來診斷這種事情。它只會告訴你「某些事物」是錯誤的。查看輸入中的實際字節以及讀取的字節。 – 2013-03-07 12:12:46

+0

好吧,我稍後在代碼中比較它們,並且有一堆錯誤。所以我試圖輸出它,是的..我得到這些符號。 – RnD 2013-03-07 12:14:10

回答

1

定義區域"Lithuanian"的方式是什麼?特別是,它定義了什麼 編碼使用?根據這一點,您也可以使用 指定區域設置中的編碼。像 "Lithuanian.UTF-8",或許,或者 "Lithuanian_Lithuania.UTF-8"。在Windows下,您可能有 使用"65001"而不是"UTF-8"。 (對於 常用的語法語言環境名稱是 language_location.encoding。 現代窗戶正逐步向POSIX語言環境的名稱, 在語言和地區使用在ISO 639-1和ISO 3166-1代碼 ,但根據規定在你的版本, 您可能需要使用舊的,更長的名稱和代碼頁, 而不是編碼。)