Gcc:将UTF-8作为执行字符集

时间:2013-09-28 10:09:54

标签: c++ gcc utf-8 character-encoding

我用Latin-1编码文件编写了这个测试程序......

#include <cstring>
#include <iostream>

using namespace std;

const char str[] = "ÅÄÖ";

int main() {
  cout << sizeof(str) << ' ' << strlen(str) << ' '
    << sizeof("Åäö") << ' ' << strlen("åäö") << endl;
  return 0;
}

...并在OpenBSD 5.3上使用g++ -fexec-charset=UTF-8 -pedantic -Wall编译它。我期待看到字符串的大小为6个字符+ 1个NUL字符,但我得到输出4 3 4 3

我尝试使用export LC_CTYPE=sv_SE.UTF-8将我的系统区域设置从ISO-8859-1更改为UTF-8,但这没有帮助。 (根据gcc手册,只会更改输入字符集,但是,嘿,值得一试。)

那么,我做错了什么?

0 个答案:

没有答案