本文打算用C++程序跟踪UTF-8字符的二进制格式。从实践上感受一下UTF-8的应用。
开发环境是UBuntu12.04 32bit OS. GCC 4.6.3,系统字节顺序是little endian.
如果有汉字‘一’,首先通过一个网站工具:http://rishida.net/tools/conversion/ 可以查到它的Unicode码是:0x4E00
用UTF-8对0x4E00进行编码后是:E4 B8 80,三字节。
下面的代码用来打印二进制码:
#include "test.h"
#include "util/endian.h"
#include "util/utf.h"
#include <iostream>
using namespace std;
int main(int argc, char ** argv) {
// TEST(3 > 2);
char const * p = "一";
cout << PrintStringAsBinaryString(p) << endl;
string str = "一";
cout << PrintStringAsBinaryString(str) << endl;
cout << IsLittleEndian() << endl;
}
utf.h中的两个函数实现代码:
#ifndef UTIL_UTF_H_
#define UTIL_UT