【发布时间】:2017-09-21 16:39:40
【问题描述】:
所以我正在尝试将 é à â 转换为 int
#include <iostream>
using namespace std;
int main()
{
string a = "é";
unsigned long b = (unsigned long) a[0];
cout << (string) b << endl;
/* error: no matching conversion for C-style cast from 'unsigned
long' to 'string' (aka 'basic_string<char, char_traits<char>,
allocator<char> >')
*/
cout << b << endl;
return 0;
}
我已经用 (char) 等做了... 所以我在这里,我认为这是编码问题,希望您能提供帮助。
【问题讨论】:
-
s/
std::cout << (char) - 61 << endl;/std::cout << (unsigned char) - 61 << endl; -
你应该看看编码是如何工作的,例如在维基百科中。
-
阅读utf8everywhere.org;找到一个好的 Unicode/UTF-8 库,例如gnu.org/software/libunistring;详细信息可能是特定于计算机和操作系统的
标签: c++ encoding typeconverter