[問題] UTF-8 to ANSI

作者: qscgy4 (有點厲害)   2015-06-23 00:24:45
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC10, Windows 7
問題(Question):
我用C++讀取網頁的內容存成txt檔後要做文字分析,
但內容有中文字,要做一些文字比對(用C++的fstream存檔後是UTF-8格式)。
爬了很多 wchar_t 之類的用法,發現都太麻煩了...
後來我發現一件有趣的事,同樣的內容另存成ANSI的格式下,
char可以正常運作,顯示中文、比對中文都沒問題,
因此就想說是不是我存成UTF-8後,
可以用什麼方法靠程式把他轉為ANSI格式存檔後,在開啟來讀取 ?
請各位大大教我這個菜逼巴,怎麼把UTF-8轉為ANSI格式,感恩。
作者: qscgy4 (有點厲害)   2015-06-23 00:44:00
在網路找到轉換的方法,以解決
作者: TeaEEE (愛不趴 不愛趴)   2015-06-23 11:50:00
如果是自己使用還好,若是在別人未使用中文OS系統上就GG了
作者: Killercat (殺人貓™)   2015-06-23 12:09:00
utf8怎麼轉ANSI @@? 你是想把UTF-8的標點轉ANSI嗎如果你只是要skip掉UTF-8的字的話 你只要碰到byte的第一個bit是1的 就看裡面幾個bit是1 跳掉後面幾個byte即可 比方說看到1110xxxx 就知道要跳掉自己跟後面兩個byte,應該是不用注意endian問題啦....或者單純看到byte第一個bit是1就跳掉也是可以的if(0x10000000 & targetChar) skipToNext();
作者: LPH66 (-6.2598534e+18f)   2015-06-23 13:29:00
他的"ANSI"應該是本地編碼 (就那個記事本的選項)這樣的話 Windows 直接叫 WinAPI 比較直接先用 MultiByteToWideChar 轉成 wchar_t[] (UTF-16) 後再 WideCharToMultiByte 轉成本地編碼即可

Links booklink

Contact Us: admin [ a t ] ucptt.com