AIRNovel&ANBooks更新:Winで一部ファイルが見つからない不具合修正

●AIRNovel更新 過去Ver等
5.68
* add:(AIRlib 5.02)ToNFC(NFD→NFC変換)クラス修正・最適化
* add:今まで通り簡単に動く方向への変更
* del:ファイル名指定で「ブ」等NFD表記をした場合にエラー出す「an.chkNFD」中止
5.67
* add:(AIRlib 5.01)ToNFC(NFD→NFC変換)クラス追加
* bug:AIR 19発表時辺り(Sept.21, 2015)のAIR SDKから、Macでビルドしたairパッケージのファイル名が、独自NFDからNFCに変換されなくなった件に対応
* add:ファイル名指定で「ブ」等NFD表記をした場合にエラー出す「an.chkNFD」追加

●ANBooks更新(Windows版 Mac版 過去Ver等)※起動するだけで自動更新
5.109
* upd:AIRnovel 5.68に更新
5.108
* upd:AIRnovel 5.67に更新

●ANEdit更新(Windows版Mac版AIRFlash必須。※起動するだけで自動更新
0.150
* upd:AIRnovel 5.68に更新
0.149
* upd:AIRnovel 5.67に更新


 ある時期からMacでビルドしたプロジェクトが、Windows上で、
「サーチパスに存在しないファイル【〜】です」というエラーが発生していました。

〜対策〜
 今回更新された、最新のAIRNovelでビルドすれば問題なくなります。

 以下は補足情報です。


〜発生時期、条件〜

 Windows上で、「ばびぶべぼパピプペポ」などの濁音(゛)・半濁音(゜)を含むファイル名のファイルが見つからない、という現象。

 同じ現象が、最近ビルドした「よつどもえ」でも発生。
 しかし、AIR 18時代(2015/8/3)にビルド(air生成)した「よつどもえ」は問題なし。

 どうやらこれは AIR 19時代(2015/9/21)〜現在(AIR 21 2016/5/18)の間で AIR SDK のパッケージ仕様が変更され、不具合が発生するようになったようです。

 Adobe AIR SDK のバージョンは関係ないようです。
 いま現在 AIR 18 にてビルドしても不具合が発生します。やはり「airパッケージ」の仕様変更のようです。
  ○AIR 18 NG (公開日 June 9, 2015)
  ○AIR 19 NG (公開日 Sept.21, 2015)
  ○AIR 20 NG (公開日 Dec.08, 2015)
  ○AIR 21 NG (公開日 Mar 10, 2016)



〜難しい技術的な話〜

 濁音・半濁音ファイル名の扱いで、Macとそれ以外のOSで違いがあります。

 例えば「ステージピンク」の「ジ」「ピ」文字コードが、
Winでは「0x30B8」(ジ、の合成型)
    「0x30D4」(ピ、の合成型)になり、
Macでは「0x30B7 0x3099」(シ+゛の分解型)
    「0x30D2 0x309A」(ヒ+゜の分解型)になるイメージです。
 これを「正規化形式が違う」と云います。(同じUnicodeという同じ文字コードだけど)

「ファイル名の扱い」については以下の記事が詳しいです。
Mac OS X の NFD 問題での対策諸々 - Qiita


 ざっくりまとめると
・Unicodeでは、同じ文字なのに違う文字コードでも表現出来る

→なんでだよ! と思うかもですが、半濁音が別の文字コードが割り当てられていると、以下のようなことも出来るため。

・Windows や Linux は NFC
・Mac は 独自NFD
  (C が Composition(合成)、D が Decomposition(分解))
  (「が」として扱うか「か + ゛」として扱うか)

 で、不具合の原因は
「Adobe AIR が今までは違いを吸収してくれていたのが急にしてくれなくなった」
(今までは全部合成型に統一(Unicode正規化)してくれていた)のが原因です。



〜余談〜
 スクリプト上では合成型で書いて下さい。普通書くとは思いますが……。

 Windows上のテキストエディタMeryでは見た目で区別してくれませんが、普通に入力すれば(OSがNFCなので)問題ないです。
(例:ブラインドの「ブ」「ド」に注目。見た目に変わりがない)


 Mac上のSublime Text 3などでは区別して表示されます。Finderからコピペすると分解型の文字コード・表示になります。
スポンサーサイト



プロフィール

ふぁみべぇ

Author:ふぁみべぇ
 →@famibee
 →メアド(四角を@に)

カテゴリ
リンク
検索フォーム
最新記事
月別アーカイブ