抱歉,如果問題是愚蠢的,並已被問及數千次,但我花了幾個小時搜索它,不能找到答案。令人討厭的Unicode和C++:簡單的方法來讀取ASCII/UTF-8/UTF-16 BE/LE文本文件
我想讀取的文本文件可以是以下任何一種:ASCII/UTF-8/UTF-16 BE/LE 我假設如果文件是unicode,則BOM始終存在。
是否有任何自動方式(STL,Boost或其他)使用文件流或任何文件逐行讀取,而不檢查BOM並始終將UTF8放入std :: string中?
在這個項目中,我只使用Windows。瞭解如何爲其他平臺解決問題也很好。
在此先感謝!
在我心底深處,我希望不要使用額外的庫。 非常感謝您的快速回復! – Andrew 2010-01-18 06:50:46
請問,請告訴我這個lib如何被用來讀取文件?我發現只有轉換例程,這意味着我需要編寫我自己的輸入處理並要求它手動轉換 – Andrew 2010-01-18 07:11:22
它實際上不能用於直接讀取文件;你需要使用'fgets()'來讀取文本,然後你可以通過一個轉換描述符。 – 2010-01-18 07:16:50