Smultron-3.5.1+NKFCocoa公開します

なんとかできました。オリジナルと違う点は次のとおり。まだまだバギーですので問題があればご連絡ください。

エンコードの判定順

オリジナルでは

  1. NSString:stringWithContentsOfFile:
  2. HTML/charset
  3. XML/encoding
  4. Unicode BOM
  5. 環境設定で指定してデフォルトエンコーディング
  6. NSUTF8StringEncoding
  7. NSISOLatin1StringEncoding
  8. NSString:defaultCStringEncoding

の順で逐次変換してうまく変換できたエンコードを採用します。+NKFCocoaでは、

  1. HTML/charset
  2. XML/encoding
  3. Unicode BOM
  4. NSData:guessByNKF(NKFCocoa)
  5. NSString:stringWithContentsOfFile:
  6. 環境設定で指定してデフォルトエンコーディング
  7. NSUTF8StringEncoding
  8. NSISOLatin1StringEncoding
  9. NSString:defaultCStringEncoding

の順でエンコードを判定します。

読み込み時自動変換

判定したエンコードを使用してNSString:initWithContentsOfFile:encoding:errorしたときエラーになればNSData:stringByNKFWithOptions:error(NKFCocoa>で変換を試みます。ただし、変換をトライするのは判定したエンコードが、Shift_JIS/ISO-2022-JP/EUC-JPの場合に限ります。

保存時の変換

編集したテキストデータがNSString:canBeConvertedToEncoding==FALSEの場合、アラートを表示し現在のエンコードを使用してNSData:stringByNKFWithOptions:errorで変換します。

保存時のエンコード指定

「別名で保存...」「コピーを保存...」でドキュメントを保存する場合、保存パネルからエンコードを指定できるように修正。(この時エンコード指定可能なリストは環境設定で選択しているエンコードのみ)この操作は、「テキストエンコーディング」メニューから編集中のドキュメントのエンコードを変更する操作と同等です。また、保存パネルにある、”拡張子を省略した場合は.txtを使用"は、環境変数で「別名で保存するとき付加する文字列」を設定している場合は無効になります。

ダウンロード

パッチを作るには修正が大きかったので丸ごとお願いします。また、 ソースにはNKFCocoaは同梱していません。別途ダウンロードしてください。

添付サイズ
Smultron-3.5.1_With_NKFCocoa.zip(Sorce)4.21 MB
Smultron-32bit-Univarsal.zip5.77 MB
Smultron-intel.zip5.58 MB

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/300

返信