|
数値文字参照を使う必要があるようなページは、日本においてはmetaタグでcharset
の指定がShift_JIS(またはShift-JISとかx-sjisとか)であることが多いと思います。
(この会議室もShift-JISだったり、vectorもShift-JISだったり)
もしShift-JISの資産をUTF-8に移行しようとする場合、UTF-8に変換してのファイル
保存と、metaタグの書き換えは同時に行う必要があります。
metaタグのcharsetでShift-JISを書いているような行があったら、注意が必要です。
metaタグのcharsetが無ければそのままでもいいです。
metaタグのShift-JISを残したまま、ファイルをUTF-8で保存すると、秀丸エディタや
ブラウザでの読み込みは文字化けすることになってしまいます。
下記に他の変換方法やmetaタグの直し方を書いておきます。
変換するときは、何があってもいいように変換前のファイルをバックアップしておく
ことをお勧めします。
●既に数値文字参照とutf-8への変換が済んでいて、metaタグのcharsetだけを直す場合
秀丸エディタの「grepして置換...」でmetaタグのcharsetをutf-8に書き換える方法
があります。
[検索]→[grepして置換...]で、以下のようにします。
検索する文字列:「<meta.+?charset=.+?>」
置換する文字列:「<meta charset="utf-8">」
検索するファイル:「*.html」(または*.htmかも)
検索するフォルダ:htmlがある場所
「大文字/小文字の区別」はOFF
「正規表現」はON
エンコードの種類:「Unicode(UTF-8)」
これで実行するとまとめて書き換えられ、秀丸エディタやブラウザの読み込みで文字
化けすることが無くなります。
●まだ変換していない場合で、秀丸エディタを使って変換する場合
秀丸エディタでhtmlファイルを開いている状態で変換するマクロの例です。
変換するだけで保存はしないので上書き保存する必要があります。
フォルダ内のファイルを全部するというところまでは作りこんでないです。
「<」とか「&」とかはhtmlタグ等に誤認識されるのを防ぐため、念のためASCII文字
の範囲は変換されないようにしています。
(実際この会議室のhtmlソースは「<」は「<」じゃなくて「<」になっている)
setcompatiblemode 0x20200;
disabledraw;
//今開いているファイルのエンコードの種類をutf-8に変換
setencode 6/*UTF-8*/,1;
//metaタグ書き換え
replaceall "<meta.+?charset=.+?>","<meta charset=\"utf-8\">",regular,nocases
ense;
//数値文字参照を文字に置き換え
gofiletop;
while(1){
searchdown2 "&#x[0-9a-fA-F]+;|&#[0-9]+;",regular;
if(result==false){
break;
}
$a=gettext2(seltopcolumn,seltoplineno,selendcolumn,selendlineno,1);
#c=strlen($a);
if(leftstr($a,3)=="&#x"){
#a=val("0x"+midstr($a,3,#c-4));
} else {
#a=val(midstr($a,2,#c-3));
}
if(#a<0x80){ //ASCII文字はやめておく
right;
continue;
}
insert unichar(#a);
}
endmacro;
●まだ変換していない場合で、他のソフトで一括変換
Googleで「meta shift_jis utf-8一括 変換」とかで検索するとそれ専用のソフトが
あるみたいなので、そっちほうが手っ取り早いかもしれないです。
(でもある1つを試してみたらmetaタグはそのままでした)
|
|