RE:09313 豆腐屋の夏ばて ...No.09314
える さん 01/07/15 21:59
 
>>>if( ! ( charset & 0x02 ) ){ endmacro;   }   //  ! Unicode
>>現在の秀丸の charset の設定の値と、入力内容に ShiftJIS 固有の
>>文字が存在していることは関係がないので、この if 文はちょっと。
>これは unicode で、問題が起こるかとかで、まくろでの、そのガード
>です。
>意味がないです。

charset が unicode の時に置換をすると変な挙動になる可能性があるために、それ
を防いでいる、ということですね。

>「秀丸」は内部では Shift-Jis での処理ですよね。

それは私にはわかりませんが、保存形式として 「SHIFT-JIS」を選択した場合には秀
丸は「いわゆる MS932」で保存します。
「ShiftJIS」では保存しません。

文章内に ShiftJIS の「〜」と MS932 の「〜」を混在させることができるので、内
部情報としは unicode や独自形式 (charset 分岐点が持てるような JIS の変形みた
いなの) かもしれません。

>いずれにせよ、コードの変換は、どんなアプリにでも無理です。
>だって、ないんだもん。個人のすきな自動解釈ですよね。

なので、とりあえずダイアログで聞いてほしい。という話だったんですが。
「〜」だけなら簡単に検索できるんですが、どこにどんな文字があるかわからないよ
うな文章を扱った時に

1) 保存してみる
2) ? を検索して元の文章の文字をみて置き換え
3) 再度保存してみる
4) また置換されましたが表示されたら 2) へ戻る

という 2-3-4 の繰り返しがたいへんなんですよね。
一括変換でいいやという人は置換と同様に [一気] ボタンを押すだけだし。

[ ]
RE:09314 豆腐屋の夏ばて ...No.09321
番頭++ さん 01/07/16 13:51
 
[ 932 unicode shift jis 変換 ] で検索しました。

http://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT

http://www.samba.gr.jp/ml/sugj-tech/htdocs/200005.month/841.html
> 正規化前 ShiftJIS  正規化後 ShiftJIS
を見てください。そのような変換が必要でしょう。

newfile;
insert "\x87\x84\xfa\x5a\n"; // Tel.
insert "\x81\x5C";  //  0x815C ― <== ???? - Horizontal Bar
insert "\x81\x5F";  //  0x815F \ <== ???? - Fullwidth Reverse Solidus
insert "\x81\x60";  //  0x8160 〜 <== ???? - Fullwidth Tilde
insert "\x81\x61";  //  0x8161 ‖ <== ???? - Parallel To
insert "\x81\x7C";  //  0x817C − <== ???? - Fullwidth Hyphen-Minus
insert "\x81\x91";  //  0x8191 ¢ <== ???? - Fullwidth Cent Sign
insert "\x81\x92";  //  0x8192 £ <== ???? - Fullwidth Pound Sign
insert "\x81\xCA";  //  0x81CA ¬ <== ???? - Fullwidth Not Sign

[ 932 unicode jis 8160 ] でも検索しました。

http://www.microsoft.com/japan/support/kb/articles/J056/0/58.htm
http://www.microsoft.com/globaldev/reference/dbcs/932.htm
http://www.asahi-net.or.jp/~ez3k-msym/charsets/jis2ucs.htm
http://www-6.ibm.com/jp/software/websphere/developer/wsv35wslib/pdf/was35_ps
j5_1.pdf


[ ]
RE:09321 豆腐屋の夏ばて ...No.09322
番頭++ さん 01/07/16 14:43
 
http://www.microsoft.com/japan/support/kb/articles/JP170/5/59.htm
[PRB] SHIFT - JIS と Unicode 間の変換問題
文書番号: JP170559  


[ ]
RE:09322 豆腐屋の夏ばて ...No.09334
ENCODINGSHIFTJIS さん 01/07/16 18:59
 
全然、いやされない情報を追加します
シフトJISからUnicodeへの変換テーブルの相違  (複数比較)
http://www.autumn.org/etc/unidif.html
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html
複数のDB/JAVA/通信ソフト/HTTPサーバーを通った時に
文字化けの予測はできるか ?

SJISの x8160 波ダッシュ が UNICODE では
uFF5E  全角チルダ(.UNIでの文字名)  互換領域     MS932 マッピング
u301C  波ダッシュ              CJK統合漢字領域   ShiftJISのマッピング
  と言うことでした
u223C にはまた、数学記号の チルダがある 、フォントによっては
谷山の波線かもしれない。

[ ]
RE:09321 豆腐屋の夏ばて ...No.09338
える さん 01/07/16 21:26
 
>> 正規化前 ShiftJIS  正規化後 ShiftJIS
>を見てください。そのような変換が必要でしょう。

懐かしいなぁ、もう1年もたってるんだな。
ところで、番頭++さんは前述の文章などを読まれてどうして正規化が必要だと思われ
ましたか?

私はエディタとして複数の charset をサポートしているならば、正規化しないべき
ではないかと思いますが。
可能性としては保存の際の自動変換において有用になるかもしれませんが、作成され
た文章をどのように扱うかによって正規化の方向性が異ってしまうため、前述の sam
ba にあるような正規化はエディタでは無意味であったり有害であるだけです。

Windows 向け専用の文章を作るだけなら、samba と同じような変換規則でも良いでし
ょう。
そのようなエディタには、UTF8 のサポートも EUC/JIS のサポートも必要ないでしょ
う。

でも、現在の秀丸が持つ機能はそれを越えて、EUC の文章を読み書きできるんです。

EUC の文章の読み書きが必要になるのは、それ (=EUC の文章) を必要とする別の環
境とファイルをやりとりするためです。
同様に ShiftJIS のファイルを必要とするのは、Windows 以外の ShiftJIS 環境( ex.
 macintosh )とファイルをやり取りするためです。
ShiftJIS 環境 (ex. Macintosh) に対してファイルをやり取りする際に MS932(Windo
ws) に対して都合のよい正規化変換が意味を成すと思われていますか?
たんに「いわゆる文字化け」を発生させて文章を破壊してしまうだけです。

samba のファイル名の問題は Windows 以外の環境のための CIFS(?) の実装の話なの
でエディタの事情にはそのまま適用することは不可能なのではないでしょうか。

[ ]
RE:09338 豆腐屋の夏ばて ...No.09343
番頭++ さん 01/07/17 10:30
 
> 懐かしいなぁ、もう1年もたってるんだな。

と言うことはその当事者ですか。置いといて ...

> 前述の文章などを読まれてどうして正規化が必要だと思われましたか?

ほんとに「正規化」って呼ぶのか疑問です。MS932 に同じ漢字に複数のコードが
あるのは知っていますが、あまり気にしてないので。単なるコード変換ですよね。
基本コードマップがどちらかで、変換が逆になりますから。

> 正規化はエディタでは無意味であったり有害であるだけです。

それを望む人と望まない人がいるだけでしょう。

「秀丸」は、内部処理を Shift-JIS (MS932) で設計されたと思います。内部の
コードはすべて、それで処理されている。外部からファイルを読み込むときに、
そのファイルのコードを内部コードに変換する、そのときの情報が charset と
して、マクロで参照できる。ファイルに出力するときには charset にしたがっ
てコード変換される。CR/LF 内部では取り除かれて、行を独自の構造体に置き換
えて、(複数の) インデックスを張って処理をしている。想像です。でも当たり。

問題は、このコード変換が自動で行われている 1 : 1 の変換は問題無いのです
が、1 : n とかになると、使用する人は困るのでしょう。それが今回の Unicode
ですよね。

MS932 ==> Unicode は 1 : 1 で、MS932 <== Unicode は 1 : n ですか。

newfile;
insertfix "\x87\x84\xfa\x5a\n"; // TEL
right; showcode;
saveas "C:\A1.txt", unicode;
// saveas "C:\A1.txt", sjis; // コード変換は行われない ...
loadfile "C:\A1.txt"; gofiletop; right; showcode;

とすると、TEL は両方とも 0x8784 になる。仕様なんでしょうね。

異なる環境で同一のコード体系を保ちたいのなら、基本となるコードを設定して、
Shift-JIS とか、すべてのデータを、「基本コードのマップ」と照合する必要が
ありますよね。Unicode 以外は範囲チェックと例外の検出ですが、Unicode だと、
「基本コードのマップ」と「 Unicode のマップ」を 1 : 1 にする必要がある。
みたいです。うちの会社 (零細企業ですが) にマルチプラットフォームで業務を
開発するツールがあります。Shift-JIS と Unicode の対応コードの定義があり
ます。そうでないと業務では使用できないのかも ...

あちきは汎用機の仕事なのですが、Windows / DOS/V (Shift-JIS) で元データを
作成して IBM 系に自動変換します。それをさらに Fujitsu 系に自動変換します。
元データは第二水準までとして、例外文字 IBM 独特の " ' の全角の処理が必要
です。昔は OASYS ==> .txt ==> DOS/V もあったのでつかれました。

いずれにせよ、仕事、であれば、それなりの工夫は必要かも。

「とーふ、トーフー」とはパソコン通信が始まって、異なるプラットフォームか
ら送られてくる投稿で、自分とこの通信ソフトで表示できない□■のことです。


[ ]
RE:09343 豆腐屋の夏ばて ...No.09344
番頭++ さん 01/07/17 15:03
 
http://www3.airnet.ne.jp/saka/ に、コード変換があります。
http://www3.airnet.ne.jp/saka/software/jme2000.html#uiw
テキスト・ビューアが在ります。面区に色がつくみたいです。
大き目のフォントすすれば、表示できないコードがわかるかも。
試してみたいのですが Windows 95 では動かないみたいです。

http://www.vector.co.jp/soft/win95/util/se079072.html - Stirling
バイナリエディタですが、なかなかいいです。

# でも、こんところ、仕事の内容が違うので。自分が今は使用していないし ...


[ ]