LoginSignup
0
0

More than 3 years have passed since last update.

Apache2.4 で x-httpd-php を使った時の不可解な挙動

Last updated at Posted at 2020-06-28

次のような文字化けの問題です。
EUC_JP で記述しているのに、UTF-8 と認識されて文字化けを起こします。
f01_jun28.png

ページ情報です。
f01_contents_jun28.png

問題は、apache2.conf で次の設定をした時に発生します。

/etc/apache2/apache2.conf
(省略)
<Directory /var/www/>
        AddType application/x-httpd-php .htm
</Directory>
(省略)

問題を起こすファイルの作成方法
UTF-8 で u01.htm を作成してから、nkf で EUC-JP に変換します。

u01.htm
<!DOCTYPE html>
<HTML lang="ja-JP">
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>Test Page Jun/28/2020</title>
</HEAD>

<BODY>
<H1>テスト / Test Page</H1>

<hr/>

<H2>テスト</H2>

<blockquote>
    Hello<p />
</blockquote>

<H2>おはようございます。</H2>

<a href="test02/">こんにちは</a><p />

<a href="test03/">今晩は</a><p />

<a href="test04/">さようなら</a><p />

<hr />
Jun/28/2020 AM 09:21<p />
</BODY>
</HTML>

変換方法

nkf -e u01.htm > f01.htm

u01.htm をブラウザーで見た場合
u01_jun28.png

f01.htm に対して、シンボリックリンクを張った場合

ln -s f01.htm f01.html

f01_html_jun28.png

ページ情報
info_f01_html_jun28.png

文字化けしている時の応答ヘッダー
header_jun28.png

問題の解決方法
サーバーで、/etc/php/7.3/apache2/php.ini を修正します。

/etc/php/7.3/apache2/php.ini
(省略)
;default_charset = "UTF-8"
default_charset = "EUC-JP"
(省略)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0