UTF8-CPP
C++在處理unicode上一向是太弱,即使有w_char的選項,但是在跨平臺和兼容性上面實在是欠佳。
現在有個任務,是要先將utf8文本讀入內存,并轉換為unicode,從而處理unicode。
思路就是通過一個不太復雜的解碼算法,將utf8文本,解碼成unsigned short的數組,也就是一個unicode用一個short表示。
但是細化到具體實現還是比較復雜的,因為要考慮到大端小端的問題,還要有從unicode轉換為utf8的編碼程序。
其實這個問題也是一個較為普遍的問題, 網上已經有較為成熟的做法。
http://utfcpp.sourceforge.net/
只需要#include "utf8.h"
string line;
getline(fin, line)//從utf8文件中讀取一行
將utf8文本轉為unicode的數組
vector<unsigned short> utf16line; utf8::utf8to16(line.begin(), line.end(), back_inserter(utf16line));將unicode的數組轉utf8
string utf8line; utf8::utf16to8(utf16line.begin(), utf16line.end(), back_inserter(utf8line));
總結
- 上一篇: java arraylist的初始化和数
- 下一篇: 编译boost相关文件