[Squeak-ja: 2447] Re: MacOSX で FileDirectry fileNames の全角数字が半角になる
Tetsuya HAYASHI
tetha @ st.rim.or.jp
2005年 5月 18日 (水) 19:45:46 JST
高橋さん、こんにちは
みなさん、どうも
林徹也です。
On 2005/05/18, at 16:21, Kouji takahashi wrote:
> 高橋@池袋です。
>
> MacOSX(10.3.9)上の Squeak 3.7.3Bete4jpc.app で
> fileNameを取得すると全角数字が
> 半角数字に入れ替わってしまうようです。
私のところの Tiger (10.4.1) と Squeak
3.8.6Beta6.app でも同じ問題が
確認できました。
> 例)本来のファイル名 取得されるファイル名
> × test1.txt → test1.txt
> × テスト1.txt → テスト1.txt
> ○ test1.txt
> ○ テスト1.txt
>
> ファイル・リストで上記のような名前のファイルを含むフォルダを見
> るとファイル名は半角数字で
> 表示され、×印のファイル名では下側paneに内容表示をさせよ
> うとするとデバッガが起動します。
>
> image側の問題では無く
> FileDirectry>>primLookupEntryIn:index: のレベルで誤ったファイ
> ル名が返っているようです。
ご指摘の通り、これは、VM の問題かと推察されます。
Carbon Squeak VM は、ディレクトリのエントリを取得する際に、古い
APIを
使ってるので内部的に UTF-8 <-> ShiftJIS と相互に変換して動
いており、
さらに、UTF-8について Apple では decomposed な
ものを用いてる関係から
起きてる問題ではないかと思われます。
今手元で確認できないのですが…
もし、よければどなたか、VM ソースの中の
CFStringNormalize 関数で引数
の定数を以下のように
kCFStringNormalizationFormKC
→ kCFStringNormalizationFormC
kCFStringNormalizationFormKD
→ kCFStringNormalizationFormD
変更してビルドしたものだとどうなるでしょうか?
--
Tetsuya HAYASHI <tetha @ st.rim.or.jp>
PGP: 5C 7D 4C 07 DA 73 74 C4 1F 6D 87 EE FD 09 0D FE
Squeak-ja メーリングリストの案内