ページ 11

g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月10日(水) 06:57
by えいえい
お世話になります。表題の通り
g++ コンパイル時にUTF8→EUCに変えるオプションはありますか?

お手数ですがよろしくお願いします。

Re: g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月10日(水) 07:22
by みけCAT
何を変えるかがよくわからないですが、

コード:

-finput-charset=UTF-8 -fexec-charset=EUC-JP
でしょうか?

Re: g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月10日(水) 21:04
by えいえい
お世話になります。以下のようにオプションをつけてやりましたがgethcar()からの戻り値はUTF8のままでした。例:あ→E38182
-finput-charset=UTF-8 -fexec-charset=EUC-JP

getchar()は対応してないのでしょうか?

コード:

 
int getevent()
    {
        int getevent()
    {
        int c,c2;
        
        if ((c = getchar()) > 0x7f) {
            c2 = getchar();
            return (c << 8) | c2;
        }
        else
            return c;
        
    }int c,c2;
        
        if ((c = getchar()) > 0x7f) {
            c2 = getchar();
            return (c << 8) | c2;
        }
        else
            return c;
        
    }


Re: g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月10日(水) 23:40
by みけCAT
えいえい さんが書きました:お世話になります。以下のようにオプションをつけてやりましたがgethcar()からの戻り値はUTF8のままでした。例:あ→E38182
-finput-charset=UTF-8 -fexec-charset=EUC-JP

getchar()は対応してないのでしょうか?
これは文字列リテラルなどの文字コードを決めるオプションなので、バイト単位で読み込むgetchar()には効かないですね。
目的にもよりますが、nkfなどの外部ツールで入力の文字コードを変換してから渡す、というのではダメでしょうか?

Re: g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月11日(木) 06:59
by えいえい
お世話になります。アドバイスありがとうございます。
LINUX用のnkfはどこで入手できるのでしょうか?どういうものか検証してみたいです。

Re: g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月11日(木) 13:14
by みけCAT
えいえい さんが書きました:LINUX用のnkfはどこで入手できるのでしょうか?
nkf Network Kanji Filter プロジェクト日本語トップページ - OSDN
ですね。
apt-getからもインストールできるかもしれません。
オフトピック
少しはググるなどして自分で調べてみましたか?

Re: g++ コンパイル時にUTF→EUC8に変えるオプションはありますか?

Posted: 2016年8月12日(金) 06:43
by えいえい
お世話になります。
apt-getからインストールできました。
ググって調査しました。
ありがとうございます。