フォーラム: ヘルプ (スレッド #31063)

4.3.4 日本語ディレクトリ名 (2011-12-02 00:38 by nikolat #60953)

Windows環境で日本語ディレクトリ名のゴーストが正しくインストールできないようです。
日本語ディレクトリ名の使用は好ましくないと考えますが、
少なくとも現状のninix-ayaにインストールされると誤動作を誘発するので、
ベースウェア側で何かしらの対策があった方が望ましいと思います。

OS : Windows Vista x32
Python : 2.7.2
baseware : ninix-aya 4.3.4
GHOST : 「シャープとフラット」「マイマイトーカ」「化学っ娘 ノエリ2nd ver.3.2」

RE: 4.3.4 日本語ディレクトリ名 (2011-12-02 23:16 by (del#4714) #60980)

レポートありがとうございます.

日本語ディレクトリの使用もあると予想はしていたのですが,
こんなに沢山とは思いませんでした. 申し訳ありません.

早急に対策を考えます.

予想される難所はPython標準モジュールのzipfileです.
(マルチバイト文字がファイル名に入っていることを想定しておらず,
内部ではそのままバックスラッシュの置換をしたりしています.)
ただ, これはzipfileの問題というよりも使用している文字コードの
情報を持っていないzipアーカイブの仕様の方に問題がありますね.
#60953 への返信

RE: 4.3.4 日本語ディレクトリ名 (2011-12-03 01:49 by (del#4714) #60981)

ちょっと誤解していました.

今3体のゴーストを確認したのですがアーカイブ中のファイル名に日本語が
使われているのではなく, インストール先の指定に日本語が入っているのですね.
ですのでzipfileの件とは別の話です.(こちらも潜在的な問題ではあるのですが,
該当するゴーストが存在しなければ良いので現状では放置しています.)

インストール先の指定(install.txtのdirectory)は文字コードが分かっているので
これを環境に対応した文字コードに変換することで対処が可能なはずです.

Linux上でも「シャープとフラット」のインストール先の文字コードがおかしくなるので
バグもある様です.

上記のバグらしき挙動と環境毎の適切な文字コードを環境側からどうやって
取得するかを調べて対策します.
#60953 への返信

RE: 4.3.4 日本語ディレクトリ名 (2011-12-03 10:31 by nikolat #60988)

誤解を与えやすい表現でした、すみません。

>該当するゴーストが存在しなければ良いので
アーカイブ中のファイル名に日本語が使われているゴーストはいくつか見たことがあります。
(必要であればサンプルとなるゴーストを数体、探してきます)
私の運営しているPython製アップローダーにもアップされて問題になったことが… :-P

おおよそWindows環境で開発されているはずなので、cp932決め打ちでもいいかと思います。
Macで開発しているゴーストマスタさんも数名存じ上げておりますが、そういった方々は大抵、日本語名を使わないように気をつけているようにお見受けします。
#60981 への返信

RE: 4.3.4 日本語ディレクトリ名 (2011-12-04 01:16 by (del#4714) #61014)

環境毎のファイル名の文字コードについて調べてみました.

まず, ファイルシステムの文字コードはWindowsではmbcs, それ以外の環境は
utf-8で良さそうです.

しかしGtk+は環境によらず渡されるファイル名の文字コードとしてutf-8を
期待しており, Windowsではmbcsからutf-8への変換が余分に必要になります.

ninix-ayaのほとんどの部分でpix.py経由でGtk+にファイル名を渡しているので
mbcsからutf-8への変換はpix.pyの中で行なうようにします.
一部にGtk+に直接ファイル名を渡している部分が残っており, 現在その場所を
特定しています. この際全てpix.py経由にしてしまうつもりです.

これらの修正が終わった時点で4.3.5をリリースする予定です.
#60981 への返信

RE: 4.3.4 日本語ディレクトリ名 (2011-12-04 01:52 by (del#4714) #61015)

zipfileの件についてはcp932決め打ちの方向で検討しますが,
対応は4.3.6以降になる予定です.
#60981 への返信

RE: 4.3.4 日本語ディレクトリ名 (2011-12-03 02:10 by (del#4714) #60984)

「シャープとフラット」はinstall.txtの指定で

Charset,UTF-8

とcharsetの頭文字が大文字になっているので, ninix-ayaが
このエントリを無視して文字コードがおかしくなっていました.

ということで, この件はゴースト側のバグですね.

ninix-ayaでエントリ名についてのみ大文字と小文字を
区別しないようにすることは可能なのですが,
ちょっと影響が予測出来無いのでやめておきます.
#60953 への返信

RE: 4.3.4 日本語ディレクトリ名 (2011-12-03 10:36 by nikolat #60989)

charsetの指定は確かCROWとSSPでサポートされている仕様でしたね。
Disc-2仕様書にも全て小文字で書かれており、大文字表記についての言及は無いので、
大文字表記の場合はベースウェア毎の処理系依存という形で良いと思います。
私も基本的にゴースト側のバグという見解で一致です。
#60984 への返信