文字セットの設定について
最近は動的Webページにおいて文字セットにはUTF-8が使用されることが多い。
しかし,これまでのWebサイトの履歴からS-JISが使われることもある。
その場合,html文書中にcharset=Shift-JISと書いてあっても,文字化けを起こすことがある。
apache2,PHPで動的Webページでhtml文書内の文字セット記述を有効にする設定をメモしておく。
1.apache2サーバ
apache2の設定ファイル中に
AddDefaultCharset UTF-8
が書いて有る場合は,html文書中にcharset=Shift-JISと書いてあっても無視される。
そのため,他の文字セットを使用する場合には,次のようにコメントアウトしておくとよい。
#AddDefaultCharset UTF-8
こうすることによって,html文書中のcharset=Shift-JISが有効になる。
例えば
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">
設定ファイルは次のようなところにある
ubuntuの場合 /etc/apache2/conf-available/charset.conf
CentOs7の場合 /etc/httpd/conf/httpd.conf
2.PHP
PHP.ini中に
default_charset = "UTF-8"
が書いてある。
しかし,.phpファイル中のヘッダ記述で打ち消すことが出来る。
例えば
<?php header('Content-Type: text/html; charset=Shift-JIS'); ?>
を.phpファイルの先頭に入れておくこちらが優先される。