unicode 与UTF8

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值