ファイルを変換するにはなにかしら 「変換操作」 をしなければならないものとおもっていた. なので,Emacs をつかって EUC-JP コードの HTML ファイルを UTF-8 コードに変換するときに,一生懸命,「変換操作」 をこころみた. ところが,いくつか 「変換操作」 をこころみてみても,変換してくれない. そういえば,HTML ヘッダで EUC-JP が指定されていたら,それを UTF-8 にかきかえなければならないのだった. そこでこれらのヘッダの指定をかきかえると,「変換操作」 をしなくても変換してくれることがわかった.
つまり,問題のファイルにははじめ,つぎのようなヘッダがついていた.
<?xml version="1.0" encoding="euc-jp"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ja" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
このなかの “euc-jp”, “EUC-JP” を Emacs (23.1) で “utf-8”, “UTF-8” にかきかえて save すると,UTF-8 にコード変換されたファイルができた.
ヘッダをかきかえるだけでコードをかえてくれるというのは,たしかにつじつまはあっている. HTML ヘッダに EUC-JP とあるのに内容が UTF-8 コードでかかれていたり,UTF-8 とあるのに内容が EUC-JP でかかれていたりするのは矛盾している. 記述にしたがってコード変換すればつじつまがあうようになる. しかし,「なにもしないで」 変換してくれるというのは,いささか直観に反するふるまいだ. いささか,びっくりしてしまった.