2013-04-20 39 views
0

我知道文件編碼很難確定。但是在C++中有沒有一個解決這個問題的方法? MB提升(我沒有找到任何合適的)?C++根據編碼讀取文本文件

我需要確定文件的編碼並將其第一行讀取到適當的區域設置的字符串。

回答

0

我懷疑是否有任何像樣的解決方案。我會盡力解釋。如果您或多或少知道應該在文件中,您只能定義編碼。然後,您可以嘗試猜測轉換文件的不同方式,並檢查結果是否與您預期的相似。如果你以俄羅斯編碼表爲例。你有所有類型的變化,如KOI-8,CP1251,CP866,它不是結束=)。所有這些編碼都有不同的俄羅斯符號映射,所以如果你拿一個文本文件並閱讀它認爲錯誤的編碼,而不是適當的數據,你會有從絕對不同的字母形成的單詞,雖然單詞/空格和較低的ASCII表部分將看起來絕對精細。

關於UTF8/16等你不能檢測到它,但你可以檢查輸入文件裏面沒有非法序列,所以你可以嘗試使用特定的編碼來對待它。

我認爲最好的選擇將首先嚐試定義您計劃檢測的編碼子集,並根據特定標準設計檢測算法。