0
可能重複:
C++ & Boost: encode/decode UTF-8C++相當於PHP的utf8_decode功能在Linux中
我需要一個wstring
已UTF-8編碼的文本到它(錯誤地)到轉換其擁有新的更正的wstring。
PHP的ut8_decode
函數完美地處理了這個問題。我也可以做到這一點通過的iconv:
來自:
# cat wtf | grep 1856 | awk '{print $2}'
å°ç³å·ãçç¾
到:
#cat wtf | grep 1856 | awk '{print $2}'| iconv -f utf8 -t ISO-8859-1
小石川 玉美
在C#中我能得到這種行爲:
public static string Utf8Decode(string utf8me) {
return Encoding.UTF8.GetString(Encoding.GetEncoding(28591).GetBytes(utf8me));
}
大多數我的搜索已經提出了特定於Windows的解決方法。由於我在Linux上,我假設我會使用iconv,但我不確定如何在C++中執行此操作。
什麼'wstring'的類型? UCS-2? UTF-32? – Pubby
'utf8_decode'將UTF-8編碼文本轉換爲ISO-8859-1編碼文本。 ISO-8859不能編碼字符「小石川玉美」。你有一個非常強大的編碼搞砸的例子! [每個程序員絕對肯定需要了解編碼和字符集以處理文本](http://kunststube.net/encoding/) – deceze