文字化けが発生する

2016年9月11日 at 17:49

また連続投稿すみません。
商用環境からのVM作成で文字化けが発生して困っているため再びお力をいただけないでしょうか。
前回の質問から変わって、商用環境にあるサイトをVMでも表示することが出来ました。

・利用しているconcrete5のバージョン
 5.7.5.6

・利用しているブラウザ
 IE11

・concrete5が動いている環境
  → VMPLAYER WorkStation 12
  → PHP
    PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53)
  → MySQL
    Ver 14.14 Distrib 5.1.73
  → Apache
    Server version: Apache/2.2.15 (Unix)

商用環境にあるサイトのVMを作りたく、資材を持ってきてVMを作ろうとしています。
基本的なサーバの構成は変わりません。


■作業概要
php、mysql、apacheインストール
mysqlの文字コード等の設定、DB作成
商用環境のSQLをインポート
/var/www/htmlを商用環境のものに上書き
apacheやphpの設定を商用環境のコンフィグで上書き


■事象
テキスト部分などマルチバイト文字(日本語全角)が文字化けする
例:企業
concreate5のエディタ編集でも文字化けて表示される。

■点検した箇所
・mysql
 /etc/my.cnf
  character-set-server = utf8
  default-character-set = utf8
 データベース作成時の文字コードセット
  utf8_general_ciで作成しており、phpMyAdminの サーバ接続の照合順序も
  utf8_general_ciの設定になっております。
 データベース内のbtContentLocalの内容をSelect
  日本語のコンテンツも見えるのですが、後方のレコードは、同じように文字化けしている。

 当方がすこし気になっているのは、concreate5をインストール後にmysqlの設定変更をしていることでしょうか

・Apache
 httpd.conf
  AddDefaultCharsetをコメントアウトしている

・PHP
 /etc/php.ini
  [mbstring]
   mbstring.language = neutral
   mbstring.internal_encoding = UTF-8
   mbstring.http_input = UTF-8
   mbstring.http_input = pass
   mbstring.encoding_translation = Off

・サイト表示したページのhtmlヘッダ
 
 意図したUTF-8で帰ってきております。

質問①
 ほかに点検すべき箇所がありましたらご教示いただけないでしょうか。
質問②
 mysqlできちんとした設定を最初にやってからインストールしないと
 当初から文字化けなどなりますでしょうか?

以上、よろしくお願いいたします。

タグ:

Re: 文字化けが発生する

2016年9月14日 at 20:48
現在文字化けの解析中です。

「btContentLocal」 のテーブルについてご教示下さい。

調査を進めていった中で分かったことは
「btContentLocal」 テーブルの中身が文字化けしているということです。
ただ、移行元の商用環境にあるconcreate5のサイトから、mysqlのdumpしたファイルをみると
同じように文字化けしていることが分かりました。

業者にお願いした時に文字化けが発生するトラブルがあったのですが
それの残骸かと思います。

つまり、現在の商用環境も既に文字化けのDB状態となっているということです。


仮説になってしまいますが、商用環境ではこの「btContentLocal」のレコード内容と記事のマッピングがうまくいっていて、移行先のVMでは「btContentLocal」のレコードとのマッピングが文字化けした古いレコードにマッピングされてしまっているのではと考えます。

そのように思うある一部の記事内容レコードです

「btContentLocal」のレコード抜粋
---------------------------------------------------------------------------------------------------------
| 13 | <p>品質方針  |  情報セキュリティ方針  |  個人情報保護方針  |  環境方針  |  サイトポリシー  |  <span class="redactor-invisible-space">サイトマップ</span></p> |
| 14 | <p><a href="#">品質方針</a>  |  <a href="#">情報セキュリティ基本方針</a>  |  <a href="#">個人情報保護方針</a>  |  <a href="#">環境方針</a>  |  <a href="#">サイトポリシー</a>  |  <span class="redactor-invisible-space" style="background-color: transparent;"><a href="#">サイトマップ</a></span></p> |
| 56 | <p><a href="#">品質方針</a>  |  <a href="#">情報セキュリティ基本方針</a>  |  <a href="#">個人情報保護方針</a>  |  <a href="#">環境方針</a>  |  <a href="#">サイトポリシー</a>  |  <span class="redactor-invisible-space" style="background-color: transparent;"><a href="#">サイトマップ</a></span></p> |
| 329 | <p><a href="{CCM:CID_187}">品質方針</a>  |  <a href="{CCM:CID_188}">情報セキュリティ基本方針</a>  |  <a href="#">個人情報保護方針</a>  |  <a href="#">環境方針</a>  |  <a href="#">サイトポリシー</a>  |  <span class="redactor-invisible-space" style="background-color: transparent;"><a href="#">サイトマップ</a></span> </p> |
| 330 | <p><a href="{CCM:CID_187}">品質方針</a>  |  <a href="{CCM:CID_188}">情報セキュリティ基本方針</a>  |  <a href="{CCM:CID_189}">個人情報保護方針</a>  |  <a href="{CCM:CID_190}">環境方針</a>  |  <a href="{CCM:CID_191}">サイトポリシー</a>  |  <span class="redactor-invisible-space" style="background-color: transparent;"><a href="#">サイトマップ</a></span> </p> |
| 352 | <p><a href="{CCM:CID_187}">品質方針</a>  |  <a href="{CCM:CID_188}">情報セキュリティ基本方針</a>  |  <a href="{CCM:CID_189}">個人情報保護方針</a>  |  <a href="{CCM:CID_190}">環境方針</a>  |  <a href="{CCM:CID_191}">サイトポリシー</a>  |  <span class="redactor-invisible-space" style="background-color: transparent;"><a href="{CCM:CID_194}">サイトマップ</a></span> </p> |
| 1560 | <p><a href="{CCM:CID_187}">品質方針</a>  |  <a href="{CCM:CID_188}">情報セキュリティ基本方針</a>  |  <a href="{CCM:CID_189}">個人情報保護方針</a>  |  <a href="{CCM:CID_190}">環境方針</a>  |  <a href="{CCM:CID_191}">サイトポリシー</a>  |  <a href="{CCM:CID_194}">サイトマップ</a> </p> |
| 1645 | <p><a href="{CCM:CID_187}">品質方針</a>  |  <a href="{CCM:CID_188}">情報セキュリティ基本方針</a>  |  <a href="{CCM:CID_189}">個人情報保護方針</a>  |  <a href="{CCM:CID_190}">環境方針</a>  |  <a href="{CCM:CID_191}">サイトポリシー</a></p> |
| 1764 | <p><a href="http://192.168.1.239/URL/index.php?cID=187">a“?e3aa?1e‡?</a>a??a??|a??a??<a href="http://192.168.1.239/URL/index.php?cID=188">a?…a?±a?≫a?-a?\a?aa?†a?£a?oa?¬a?1e‡?</a>a??a??|a??a??<a href="http://192.168.1.239/URL/index.php?cID=189">a??aooa?…a?±a??e-・a?1e‡?</a>a??a??|a??a??<a href="http://192.168.1.239/URL/index.php?cID=190">c’°a¢?a?1e‡?</a>a??a??|a??a??<a href="http://192.168.1.239/URL/index.php?cID=191">a?μa??a??a??a?aa?・a??</a> </p> |
| 2093 | <ul><li class="cur"><a href="{CCM:CID_187}">a“?e3aa?1e‡?</a><span></span></li></ul> |
| 2095 | <p><a href="{CCM:CID_187}">a“?e3aa?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_188}">a?…a?±a?≫a?-a?\a?aa?†a?£a?oa?¬a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_189}">a??aooa?…a?±a??e-・a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_190}">c’°a¢?a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_191}">a?μa??a??a??a?aa?・a??</a> </p> |
| 2157 | <p><a href="{CCM:CID_187}">a“?e3aa?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_188}">a?…a?±a?≫a?-a?\a?aa?†a?£a?oa?¬a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_189}">a??aooa?…a?±a??e-・a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_190}">c’°a¢?a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_191}">a?μa??a??a??a?aa?・a??</a> </p> |
| 2417 | <p><a href="{CCM:CID_187}">変更加えた?</a>a??a??|a??a??<a href="{CCM:CID_188}">a?…a ±a?≫a?-a?\a?aa?†a?£a?oa?¬a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_189}">a??aooa?…a ±a??e-・a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_190}">c’°a¢?a?1e‡?</a>a??a??|a??a??<a href="{CCM:CID_191}">a?μa??a??a??a?aa?・a??</a> </p> |
---------------------------------------------------------------------------------------------------------

最後の2417のレコードが変更を加えたものです。
どのように「btContentLocal」が積み上がるのかを確認するために変更を加えました。

concreate5の移行では、バージョン割当などしないと違うコンテンツ内容に割当されてしまうでしょうか?
当方の思いとしては上記レコードの「1645」の内容になってほしいと考えております。

単純に文字化けしているレコードを削除したら、記事自体がなくなってしまいました。(ブロックと言ったらいいのでしょうか)

何卒お知恵をお貸し下さい。
 

Re: 文字化けが発生する

2016年9月14日 at 21:34
編集モードで何か変更を行うたびにbIDは増えて新しいレコードが作成されていきます。
レコードの途中から文字化けしているというのは、そのタイミングでphpの文字コードの設定が変更された可能性が高いのではないかと思われますが、確証はありません。
 

Re: 文字化けが発生する

2016年9月15日 at 12:28
takuro様

返信いただきありがとうございます。

新しいレコードが最新になるという話ですと、現状文字化けした状態で入っているんですね。
しかし、HP描画上は文字化けがしていません・・・。

dumpするときなどの文字コードを変更して
再度リストアをやってみたいと思います。
 

Re: 文字化けが発生する

2017年4月23日 at 17:46
その後原因と対処について分かりましたので
今後Concrete5を使う皆様のお役に立てればと思い、残しておきます。

〇原因
「skip-character-set-client-handshake」の設定がMySQLの設定ファイル「my.cnf」の[mysqld」セクションの中に記述されていないことが原因で、MySQLクライアントからサーバーへデータを送信する際に文字コードが変わってしまっていた。

〇対策
・DBバックアップ時
バックアップ時にdefault-character-setにlatin1を指定することで、latin1の部分を文字化けせずに取得する。

・リストア時
バックアップ時にlatin1を指定して取得したものをそのままリストアすることで文字化けせずにリストアが可能。
ただしMySQLの設定で「skip-character-set-client-handshake」を指定している場合、バックアップファイルの「SET NAMES」をUTF8に書き換えてリストアすることで文字化けせずにリストア可能