utf-8 编码是在传输中或者保存时候是字节码,没有大小端的问题
以存储为例:
不管是英文(1个字节)还是中文(3个字节),不用考虑大小端问题,直接写到文件即可。
但是对于unicode码,他是有大小端的。
比如在c/c++程序里面想把常量字符串“测”以UTF-8格式写到文件,
const wchar_t test[32] = L"测"; //在内存中“测”是以unicode存储的,两个字节,(0x6D4B, 在大小端系统下存储是不一样的)
// 需要将它转换为utf-8 (3个字节, 0xE6B58B, 字节串,没有大小端问题)写到文件
#include <codecvt>
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string s = converter.to_bytes(L"t测");
测 unicode (0x6D4B 双字节类型变量)
utf-8 (E6B58B, 字节串)
std::wstring_convert was first introduced in C++11 and deprecated in C++17, so you need to add the compiler flag -std=c++11 or -std=c++14.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)