記事ブロックの文字化け

2015年11月30日 at 8:39

5.7.5.3にいろいろ四苦八苦してバージョンアップしたのですが、何回かやり直したのが原因なのか、記事ブロックで日本語を入れると文字化けしてしまいます。

属性などのフォームで入力する文は大丈夫なのですが、HTMLブロックも記事ブロックも文字化けします。

サーバーzenlogicなので、PHPを一気に5.3の次が5.6.11の設定しかなかったので、それに上げました。それが原因でしょうか?

環境以下に...

# concrete5 Version
Core Version - 5.7.5.3
Version Installed - 5.7.5.3
Database Version - 20150731000000

# Server Software
Apache

# Server API
apache2handler

# PHP Version
5.6.11

# PHP Extensions
apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imap, intl, json, ldap, libxml, mbstring, mcrypt, mhash, mysql, mysqli, mysqlnd, odbc, openssl, pcre, PDO, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, recode, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib.

# PHP Settings
max_execution_time - 3600
log_errors_max_len - 4096
max_file_uploads - 100
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 64M
post_max_size - 384M
sql.safe_mode - Off
upload_max_filesize - 256M
ldap.max_links - Unlimited
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - no value
session.gc_maxlifetime - 1440
soap.wsdl_cache_limit - 5
opcache.max_accelerated_files - 4000
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5

タグ:

Re: 記事ブロックの文字化け

2015年11月30日 at 8:42
入力したテキストが文字化けするのは多くの場合データベース側の文字コードの設定が原因です。phpMyAdminなどが使えるのであれば、データベース側の文字コード設定を確認してみてください。加えて、データベースに保存されているテキストの時点で文字化けしているのか、データベースでは文字化けしていないのに表示が文字化けするのか、その辺りも確認いただければ。
 

Re: 記事ブロックの文字化け

2015年11月30日 at 9:33
ありがとうございます。

今mysqladminで見ると、各テーブルの照合順序がutf8_unicode_ciになっていました。
文字化けしたbtContentLocalにすると、その中身も文字化けしました。

これは全てのテーブルをutf8_general_ciにすると解決するでしょうか?
 

Re: 記事ブロックの文字化け

2015年11月30日 at 14:52
照合順序がutf8系であれば、問題ないです。php.iniの設定だと思います。サーバー側で設定変更したのかもしれないので、問い合わせてみてください
 

Re: 記事ブロックの文字化け

2015年11月30日 at 11:53
テーブルをすべてutf8_general_ciにしましたが、文字化けが直りません。
btContentLocalのデータを見ると、DBの文字も化けています。
php.iniなどで設定が必要なんだろうか?バージョンアップする前はいけてたんですが...
 

Re: 記事ブロックの文字化け

2015年11月30日 at 15:13
うーん
htaccessに
php_value default_charset UTF-8
php_value mbstring.language neutral
php_value mbstring.internal_encoding UTF-8

を入れても、ブロックのほうは文字化けする..
zenlogicなんで聞いてみます。

アップデート何回かしくったので、それかもしれません。
その場合はDB書き出して、再インストールしてみるしかないですね。
 

Re: 記事ブロックの文字化け

2015年11月30日 at 18:34
zenlogicのサポートと確認して.htaccessに
php_value mbstring.http_input pass
を追記したら直りました。

私ははまった状態を今後のために書いておきます。

zenlogicでPHPを5.6に変更・
concrete5を5.7.5.3にアップデート。

デフォルトで
mbstring.http_input pass
になってるはずなんですが
おかしくなったら、追記で試してみてください。