Foros: Ayuda (Thread #38855)

CentOS7 <--> Teraterm の SSH で4バイト系 UTF-8 文字を使いたい。使えない? (2017-08-30 10:50 by osarikun #80199)

お世話になります。

CentOS7にSSHで接続し、MySQL(5.5系)のテーブルに4バイト系のUTF-8文字列
を挿入したいのですが、コピペも表示も出来ません。

TeraTerm 4.95、漢字受信(UTF-8/UTF-8m)、漢字送信(UTF-8)、
bashを使用、LANG=ja_JP.utf8、3バイト系の文字は普通に使えます。

これ、TeraTermでは不可能なのでしょうか?

> insert into table_foo (data) values ('𠀋𡈽𡌛𡑮𡢽');
> insert into table_foo (data) values ('😀😁😂🤣😃');

ちなみにファイル名が4バイト系UTF8文字のファイルをアップロードして ls
すると、それも化けます。

※上に書いた4バイト系文字が文字化けしたらすみません。

Re: CentOS7 &lt;--&gt; Teraterm の SSH で4バイト系 UTF-8 文字を使いたい。使えない? (2017-08-30 21:46 by doda #80202)

[メッセージ #80199 への返信]
> CentOS7にSSHで接続し、MySQL(5.5系)のテーブルに4バイト系のUTF-8文字列
> を挿入したいのですが、コピペも表示も出来ません。

まず最初に答えだけを書くと、現状のTera Termでは使えないという事になります。

これは二つの問題があります。
まず一つ目ですが、現在のTera Termでは日本語モードで使う場合は内部で文字をCP932に変換して表示しています。
その為、UTF-8で4バイトになる(BMP外の)文字や、UTF-8で3バイトになる文字でもCP932に変換できない文字は表示出来ません。(例えば "ヷ"(カタカナのワに濁点がついた物))
これを修正するには大掛かりな変更が必要なのですぐには対応できません。

これとは別に、UTF-8で4バイト(以上)になる文字を正しく取り扱っていないという問題があります。
これは後に続く文字まで文字化けする原因になるので、4.97までには修正したいと思います。 cf. Ticket: #17228
だた、この問題を修正しても最終的にはCP932に変換できない為、該当の文字は表示できません。(? として表示されるようになる)
Best Answer Responder al #80199

Re: CentOS7 &amp;lt;--&amp;gt; Teraterm の SSH で4バイト系 UTF-8 文字を使いたい。使えない? (2017-09-01 12:03 by osarikun #80215)

お礼が遅れて申しわけございません。

> 現状のTera Termでは使えないという事になります。

詳しい説明ありがとうございました。
別の方法でどうにかすることにします。
Responder al #80202