47246


WebFrog Blogというかなり古いブログシステムを  
xserverに設置しております。  
2008年頃設置。

この度xserverの仕様変更により文字化けが発生しました。  
因みに下記サイトになります。

<http://www.tohobunka.jp/>

xserverの変更内容  
MySQLデータベースからWEBサイトにデータを出力する場合に文字コードを厳密(正確)に指定されていないと文字化けが発生するよう、サーバー側の仕様が変更されております。

問い合わせた解決策

PHPプログラムの方で、【mysql_set_charset("utf8");】などと  
文字コードを指定することで、文字化けが解消されることがある。

その他、下記設定の見直し。  
mbstring.language  
mbstring.internal_encoding  
mbstring.http_input  
mbstring.http_output  
mbstring.encoding_translation  
mbstring.detect_order  
mbstring.substitute_character

ブログ設置の際は、mysqlデーターベースの設定などは行いませんでした。  
サーバーに設置している項目としては下記があります。

cache  
core  
data  
module  
theme  
view  
favicon.ico  
index.php  
index.rdf

パーミッションの変更  
cache → 777  
data → 777  
favicon.ico → 666  
index.rdf → 666  
ブラウザから「index.php」にアクセスする  
ブログが表示されればインストール完了という簡単なものでした。

mysql_set_charset("utf8");とは、どこに書き込むのでしょうか。  
何か解決策のヒントはありますでしょうか？  
何卒、宜しくお願い致します。


CC BY-SA 4.0
2018-08-03T11:21:42.703
47217
2018-08-05T16:52:50.433
2018-08-05T16:52:50.433
3054
25524
question
php
Xserver上のWebFrog Blogが文字化けする


8年以上前に当該ソフトの配布が終了していたようでそれ自体について調べることは困難そうでしたが、みたところ

  * 書かれているように当該ソフトはMySQLなどのDBは使わず、ファイルにデータをすべて保存しているようです。そのためMySQLにかかわるコードを書いたところで無駄そうです
  * どうやら、これは`EUC-JP`という文字コードを利用しているようです。一方で当該サイトのHTTPヘッダーではUTF-8が指定されているため、そっちが優先されてしまってい、それによって文字化けいしているようです。（<https://www.php-factory.net/cms/detail.php?id=26> に書かれているような文字化けです）

ということでコードを見ずに検討できる雑な解決方法としては

  * index.phpの先頭(`<?php`の直後)に
[code]     header("Content-Type:text/html;charset=EUC-JP");

    
[/code]

のようなコードを挿入し、HTTPヘッダーに出力される文字コードの指定を上書きする

  * .htaccessやphp.ini で`default_charset`を編集し上記ヘッダーで`charset`が出力されないようにする、またはEUC-JPを指定する

などが考えられます。まあコードをいじるのもどうかと思うので(ほかに同居しているものがないのであれば)サーバー管理画面のphp.ini集等から

[code]

    default_charset EUC-JP
    
[/code]

を指定するのが良さそうでしょうか。


CC BY-SA 4.0
2018-08-04T16:00:50.397
47246
2018-08-04T16:00:50.397
2376
47217
answer