sakura-editor / sakura-editor.github.io

SAKURA Editor portal site
https://sakura-editor.github.io
11 stars 12 forks source link

機能紹介 内部コード #74

Open t-tk opened 1 year ago

t-tk commented 1 year ago

お世話になっております。 https://sakura-editor.github.io/intro.html の中で、

JIS / EUC / Unicode / UnicodeBE (BigEndian) / UTF-8 / UTF-7 の読み書き (ただし,エディタ内部は Shift-JIS)

という記述がありますが、現在の状況も間違いないでしょうか?

私は、内部がUnicode化されたSakura Editorがリリースされて久しいものと思っています。

berryzplus commented 1 year ago

サクラエディタ v2の内部コードはUTF16拡張です。 また、Unicode(UTF8(UTF-8 BOMあり)、UTF8N(UTF-8 BOMなし)、UTF16(≒UTF-16BE BOMなし、UTF-16BE BOMあり、UTF-16LE BOMあり)、UTF-16LE BOMなし、CESU8(≒Oracle版UTF-8))以外でも、Windowsが対応する文字コードであれば読み書きできることになっています。

通常のUTF16との差分は以下です。

サクラエディタ v2は「NEC選定IBM拡張文字」を含むSJISのテキストを正しく表示できません。

t-tk commented 1 year ago

ご回答ありがとうございます。 CP932 だけでも結構ややこしいことを初めて知りました。 https://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932

  1. 13区 「NEC特殊文字」
  2. 89 - 92区 「NEC選定IBM拡張文字」
  3. 115 - 119区 「IBM拡張文字」

Shift_JISで表現した場合、「Windows-31J」の機種依存文字のうち、「NEC特殊文字」と 「IBM拡張文字」に対応していて「NEC選定IBM拡張文字」に非対応、ということでしょうか?

berryzplus commented 1 year ago

「非対応」というのが微妙ですが、

Windows-31J → Wide文字列(UTF16LE) → Windows-31J の変換を行った際に、元に戻せない文字が約400文字あり、 それらの文字は「化けて見える」ということです。

対応できますが「パフォーマンスの懸念がある+要望がない」で作業してない状態です。