现在的位置: 首页 > 综合 > 正文

UTF8-CPP

2014年02月09日 ⁄ 综合 ⁄ 共 563字 ⁄ 字号 评论关闭

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));

抱歉!评论已关闭.