看板 C_and_CPP 關於我們 聯絡資訊
環境 vs2005 我知道win32 api可以正常運作,我想問的是 一般c++如何處理unicode的檔案, 我試了使用iwfstream/owfstream,發現 這兩個讀寫時,讀進來的資料是以1byte大小作單位, 也就是說如果是2bytes的utf16,讀進來的資料都需要 2個單位的陣列元素來儲存,造成讀進來的資料沒辦法 很簡單的作字串的比較(ex 使用wcscmp, strcmp),請 問一般C++的作法是? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.72.157
chrisdar:C++的作法嗎? 沒有 03/27 23:05
chrisdar: 好像太武斷了 找Boost看看有沒有機會 03/27 23:06
tsaiminghan:沒有!c++只能作binary的比對嗎? 03/28 01:03
tsaiminghan:如果沒有的話,我只想到用mem的比對而已… 03/28 01:08
james732:我記得微軟不是有提供一堆怪怪的type跟function嗎? 03/28 01:51
tsaiminghan:api的話,我知道用readfile可以讀進utf16 03/28 02:07
tsaiminghan:處理上也沒問題,只是沒有getline的功能 03/28 02:08
tsaiminghan:而c++有好用的getline,所以問問有沒有處理utf16的方 03/28 02:10
tsaiminghan:法. 03/28 02:10
tsaiminghan:不過沒想到c++會沒有處理utf16的功能,真讓我意外 03/28 02:12
yoco315:首先看這篇 http://www.cantrip.org/locale.html 03/28 02:42
yoco315:然後查一下你用的 std library 有沒有支援 utf16 facet 03/28 02:43
yoco315:如果沒有,去找看看哪邊能下載到你需要的 facet class 03/28 02:44
tsaiminghan:謝謝 03/28 02:58