まー、困ることはないんだけど、気になって気になって
よく、jsとかの挙動で「あれ、どうだっけ?」ってなった時、
<html>
<head>
</head>
<body>
<button onclick="test()">
test
</button>
<script src="index.js">
</body>
</html>
とかで、
docker run -d -p 8888:80 -v `pwd`:/usr/local/apache2/htdocs httpd
で、さくっと試したりする。(果たしてこれがさくっとなのか)
まー、見てわかる通り、htmlはあまりにも手抜きすぎるんだけど。
動くし、すぐ使い終わるから。
んで、ある時、
<html>
<head>
</head>
<body>
<button onclick="test()">
てすと
</button>
<script src="index.js">
</body>
</html>
ってやったら、見事に文字化けした。
(macのchrome)
対処としては簡単で、
<html>
<head>
<meta charset="utf-8"></meta>
</head>
<body>
<button onclick="test()">
てすと
</button>
<script src="index.js">
</body>
</html>
metaタグでcharset指定するだけなんだけど。
ファイル自体はUTF-8で作成していたし、UTF-8なら大丈夫だろ、とか思ってたからちょっとびっくりした。
デフォルトでUTF-8じゃないのか。
気になったので調べようと思った。
「指定しないと文字化けする可能性があるので、ちゃんと指定しましょう」
そんなことはわかってるんだ。
わかった上で、指定しなかったらどうなるか知りたいんだ。
指定しなかったら文字化けする? 違う、そうじゃない。いや、そうなんだけど、そうじゃない。知りたいのはそこじゃない。どのエンコーディングが採用されるのか、だ。
apacheにAddDefaultCharsetとかなかったし、ブラウザ側だと思うんだけどなー。
それっぽいこと書いてあるサイトもあったが、ちょっと古い。
chrome ver.35って。俺のchrome、ver.73だぞ。そんな項目ねーよ。
というか、chromeはもうエンコード指定できない。
まー、大半のユーザーは「エンコードとは何ぞ」って感じだから、意識させないってのは、わからなくもない。charset指定しないサイトなんて今時ないだろうし。でも、だからこそ、なおのこと指定しなかった場合の挙動がよくわからん。
普段、ちゃんと作る時は、まず間違いなく指定するmetaタグだし、わからなくても困らないっちゃ困らないし、不毛なので調べるのをやめた。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント