[問題] C++讀寫utf-16

看板C_and_CPP作者 (nahgnimiast)時間16年前 (2009/03/27 14:45), 編輯推噓2(2012)
留言14則, 4人參與, 最新討論串1/2 (看更多)
環境 vs2005 我知道win32 api可以正常運作,我想問的是 一般c++如何處理unicode的檔案, 我試了使用iwfstream/owfstream,發現 這兩個讀寫時,讀進來的資料是以1byte大小作單位, 也就是說如果是2bytes的utf16,讀進來的資料都需要 2個單位的陣列元素來儲存,造成讀進來的資料沒辦法 很簡單的作字串的比較(ex 使用wcscmp, strcmp),請 問一般C++的作法是? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.72.157

03/27 23:05, , 1F
C++的作法嗎? 沒有
03/27 23:05, 1F

03/27 23:06, , 2F
好像太武斷了 找Boost看看有沒有機會
03/27 23:06, 2F

03/28 01:03, , 3F
沒有!c++只能作binary的比對嗎?
03/28 01:03, 3F

03/28 01:08, , 4F
如果沒有的話,我只想到用mem的比對而已…
03/28 01:08, 4F

03/28 01:51, , 5F
我記得微軟不是有提供一堆怪怪的type跟function嗎?
03/28 01:51, 5F

03/28 02:07, , 6F
api的話,我知道用readfile可以讀進utf16
03/28 02:07, 6F

03/28 02:08, , 7F
處理上也沒問題,只是沒有getline的功能
03/28 02:08, 7F

03/28 02:10, , 8F
而c++有好用的getline,所以問問有沒有處理utf16的方
03/28 02:10, 8F

03/28 02:10, , 9F
法.
03/28 02:10, 9F

03/28 02:12, , 10F
不過沒想到c++會沒有處理utf16的功能,真讓我意外
03/28 02:12, 10F

03/28 02:42, , 11F
03/28 02:42, 11F

03/28 02:43, , 12F
然後查一下你用的 std library 有沒有支援 utf16 facet
03/28 02:43, 12F

03/28 02:44, , 13F
如果沒有,去找看看哪邊能下載到你需要的 facet class
03/28 02:44, 13F

03/28 02:58, , 14F
謝謝
03/28 02:58, 14F
文章代碼(AID): #19pEQ3OL (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
問題
1
5
完整討論串 (本文為第 1 之 2 篇):
問題
1
5
問題
2
14
文章代碼(AID): #19pEQ3OL (C_and_CPP)