[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:01039] internal character code
- Subject: [FDclone-users:01039] internal character code
- From: Masaaki Matsuo <masaaki@m20.jp>
- Date: Sun, 29 Nov 2015 02:21:56 +0900
こんにちは松尾です。
fdcloneを便利に利用させていただいています。
質問がありメールさせていただきました。
ごくたまに文字化け(ファイル名通りに表示されない)するので
コンパイルオプションなどでなんとかならないかと
調べてみました。
結局デバッガで動作を追ったりしていたのですが
printf.c内でShift JISとUnicodeが混ざっているような
データになっていました。
Installの
---
CODEEUC OS では EUC 漢字コードを使っている。
(この識別子が未定義の場合は Shift JIS)
---
という説明と合わせて考えると
fdcloneの内部文字コード(漢字コード)はShift JISかEUCで、
これに変換できないファイル名場合に
文字化けを起こすのではないかと予想しました。
この予想が当たっていたとしてですが、
内部文字コードを別のコード(utf8でしょうか…)も使えるようにする
考えというか予定はありますでしょうか?
あと細かいですが、
cygwinでは「なし」というグループ名に所属しているのですが
この表示も文字化けします。
--
ここ以降はテストで使った環境などを書きます。
linux(debian)にはディスプレイをつないでいません。
fdcloneで表示できるかチェックする前に
ls --show-control-chars
で表示できているか調べています。
(u)xtermで大丈夫と勝手に思っていたのですが意外とダメで
cygwin付属のminttyが文字化けなく表示できました。
--
■テストに使ったファイル名
U+2049("!?"が1文字になったもの)が含まれているもの
U+20bb7(吉の口の上が土)が含まれているもの
韓国語で「こんにちは」をファイル名にしたもの
■fdの実行環境
1:cgywin64bit (15/11/29時点で最新) on windows 10
$ cygcheck -c cygwin
Cygwin Package Information
Package Version Status
cygwin 2.3.1-1 OK
2:debian stretch (15/11/29時点で最新)
■~/.fd2rcの内容
実行環境1,2で同じものを使っています
関係ありそうなところだけ…
$ grep -i code ~/.fd2rc | grep -v ^#
UNICODEBUFFER=1
DEFKCODE="utf8-iconv"
INPUTKCODE="utf8-iconv"
PTYINKCODE="utf8-iconv"
PTYOUTKCODE="utf8-iconv"
FNAMEKCODE="utf8-iconv"
■使用した端末
1:Cygwin/X(cygwin xterm)
$ cygcheck.exe -c | grep xorg-server
xorg-server 1.17.4-1 OK
xorg-server-common 1.17.4-1 OK
$ cygcheck.exe -c | grep xterm
xterm 320-1 OK
2:debian xterm (+ Cygwin/X)
$ dpkg -l | grep xterm
ii xterm 320-1
amd64 X terminal emulator
3:cygwin付属端末ソフト
mintty