テキストファイル中の meta charsetNo.17435
hanirin さん 04/06/25 14:13
 
秀丸V4.10 β33を使用しています。

以下の1行を含むテキストファイルを開くと、文字コードが繁体字に
なってしまいます。

↓この1行
<meta http-equiv="Content-Type" content="text/html; charset=big5">

htmlファイルなら良いと思いますが、単なるテキストファイルの一部に
この行が含まれていると、文字コードを正しく認識しなくなるので、
困ってしまいます。

[ ]
RE:17435 テキストファイル中の meta charNo.17440
秀まるお2 さん 04/06/25 17:48
 
 「動作環境・ファイル・エンコーディング1」での、「HTMLのmetaタグを認
識」をOFFにすればいいと思います。

 どうでしょ?

[ ]
RE:17440 テキストファイル中の meta charNo.17441
秀まるお2 さん 04/06/25 18:15
 
 <meta>タグは、一般的には<html>〜</html>中の、さらに<head>〜</head>中に
記述することになっています。なので、そこの中にあるmetaタグのみを文字コー
ド用として認識するようにって手はありますが…。

 そういう仕様変更をしてもなお解決しないケースがあるかもしれないし、逆に
そういうことをして自動認識されなくなって困るというケースもあるかもしれま
せんが…。ちなみにInternet Explorerでは、<html>〜</html>の外にmetaタグを
書いても、metaタグに書いた内容は有効なようです。

[ ]
RE:17441 テキストファイル中の meta charNo.17442
Iranoan さん 04/06/25 18:37
 
 秀まるおさん今日は、Iranoan です。
>  <meta>タグは、一般的には<html>〜</html>中の、さらに<head>〜</head>中に
> 記述することになっています。なので、そこの中にあるmetaタグのみを文字コー
> ド用として認識するようにって手はありますが…。
 本来、これが正しい判断だと思いますが、
> Internet Explorerでは、<html>〜</html>の外にmetaタグを
> 書いても、metaタグに書いた内容は有効なようです。
ということで、I.E に合わせるということであれば、*.htm, *.html ファイル
だけ認識させる方法もあると思います。

[ ]
RE:17442 テキストファイル中の meta charNo.17443
秀まるお2 さん 04/06/25 18:44
 
> ということで、I.E に合わせるということであれば、*.htm, *.html ファイル
> だけ認識させる方法もあると思います。

 xml形式の場合もmetaタグが使えるし、*.phpとか*.aspとかは対象外でいいの
かって話も出てきそうで怖いかなぁと思ったりもします。

[ ]
RE:17443 テキストファイル中の meta charNo.17444
Iranoan さん 04/06/25 18:57
 
 秀まるおさん今日は、Iranoan です。
>  xml形式の場合もmetaタグが使えるし、*.phpとか*.aspとかは対象外でいいの
> かって話も出てきそうで怖いかなぁと思ったりもします。
 この辺りのことを忘れていました(^^;。
 ただ hanirin さんの書き込みは、「*.txt はそのまま読み込めば」と読め
ました。

[ ]
RE:17444 テキストファイル中の meta charNo.17446
hanirin さん 04/06/25 20:09
 
>秀まるおさん、Iranoanさん

どうもありがとうございます。
「HTMLのmetaタグを認識」をOFF
で、とりあえず問題解決いたしました。

そのオプションの存在に気づいていませんでした。

[ ]
RE:17443 テキストファイル中の meta charNo.17451
でるもんた さん 04/06/27 08:21
 
でるもんたです。

> > ということで、I.E に合わせるということであれば、*.htm, *.html ファイル
> > だけ認識させる方法もあると思います。
>
>  xml形式の場合もmetaタグが使えるし、*.phpとか*.aspとかは対象外でいいの
> かって話も出てきそうで怖いかなぁと思ったりもします。

個人的には、他にも対応してほしいものがいろいろあったりします。
たとえば、

○Emacs ではファイルの冒頭に -*- coding: euc-jp-unix -*- とか書いておくと
 そのコードで読んでくれるので、それに対応してほしい。

○メールヘッダの Content-type: text/plain; charset=iso-2022-jp といった
 表記にも対応できると、ひょっとしたら欧文メールを扱う人には嬉しいのでは
 ないか。

で、このへん全部を秀丸にハードコードしていては埒があかないので、「本文の
冒頭の一定範囲(←この範囲はカスタマイズ可能にする)が特定の正規表現に
マッチしたら特定の文字コードとみなす」という機能を作っていただけないで
しょうか。それを使って、たとえば上記の Emacs の機能は
   本文の冒頭 3 行以内に -\*-.*coding: *\f[^ ;]+\f.*-\*- があった場合
     \1 が ^euc-j にマッチすれば EUC-JP とみなす
     \1 が ^iso-8859- にマッチすれば欧文とみなす
というカスタマイズで実現することになります。

[ ]
RE:17451 テキストファイル中の meta charNo.17455
秀まるお2 さん 04/06/28 09:20
 
 一応、ご要望の件は今後の改良のネタとして、将来の改良時に検討したいと思
います。

 V4.10で文字コード自動判定をかなりやるだけやったつもりなので、その部分
について、当分は大きな修正はしないと思います。

[ ]
RE:17455 テキストファイル中の meta charNo.17459
でるもんた さん 04/06/28 09:45
 
でるもんたです。

>  一応、ご要望の件は今後の改良のネタとして、将来の改良時に検討したいと思
> います。
>
>  V4.10で文字コード自動判定をかなりやるだけやったつもりなので、その部分
> について、当分は大きな修正はしないと思います。

はい。
さきの投稿で書き忘れたのですが、この要望は「4.20以降のどこかの段階で」と
いうつもりでした。

[ ]