c++ - 如何使用 UTF-8 编码字符/字符串

标签 c++ string twitter utf-8 character-encoding

我正在使用 Twitter API 库向 Twitter 发布状态。 Twitter 要求帖子采用 UTF-8 编码。该库包含一个 URL 编码标准字符串的函数,该函数完美适用于所有特殊字符,例如 !@#$%^&*() 但对于重音字符(和其他 UTF-8)是不正确的编码。

例如,“é”被转换为“%E9”而不是“%C3%A9”(它几乎只能转换为十六进制值)。是否有内置函数可以输入类似 'é' 的内容并返回类似 '%C9%A9"的内容?

编辑:我对 UTF-8 还很陌生,以防我的请求毫无意义。

编辑:如果我有一个

string foo = "bar é";

我想把它转换成

"bar %C3%A9"

谢谢

最佳答案

如果您有一个宽字符串,您可以使用标准 wcstombs() 将其编码为 UTF8功能。如果您使用其他编码(例如 Latin-1),则必须先将其解码为宽字符串。

编辑: ... 但 wcstombs() 取决于您的区域设置,它看起来像 you can't select a UTF8 locale on Windows . (你没有说你使用的是什么操作系统。)WideCharToMultiByte()在 Windows 上可能更有用,因为您可以在调用中指定编码。

关于c++ - 如何使用 UTF-8 编码字符/字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083032/

相关文章:

iphone - iOS - 如何使用用户名和密码获取 twitter OAuthtoken

c++ - 返回整个集合的通用方法

c++ - 有效地为地形物理提供几何

c++ - 为什么 bool 到 string 的隐式转换不是错误?

R:如何更改列表对象的字符编码

php - Cronjob 但适用于 jQuery/Javascript

c++ - Sphinx 是否已经适用于 C++ 文档?

c++ - 如果我只想专门化模板中的一种方法,我该怎么做?

python - Python 的 Tsql KeyError 消息

C++ 中的 Python 风格字符串替换