1

このテスト プログラムは、Latin-1 でエンコードされたファイルで作成しました...

#include <cstring>
#include <iostream>

using namespace std;

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

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

g++ -fexec-charset=UTF-8 -pedantic -Wall...そしてOpenBSD 5.3でコンパイルしました。文字列のサイズが 6 文字 + 1 NUL 文字であることを期待していましたが、出力が得られます4 3 4 3か?

でシステム ロケールを ISO-8859-1 から UTF-8 に変更しようとしましexport LC_CTYPE=sv_SE.UTF-8たが、解決しませんでした。(gcc のマニュアルによると、それは入力文字セットを変更するだけですが、試してみる価値はありました。)

それで、私は何を間違っていますか?

4

0 に答える 0