2016-04-06 9 views
0

この件に関する他のすべての記事を参照しようとしましたが、運はありません。Wordpressの投稿は?????のみを表示します保存された文字。 (ユニコード文字のみ)

英語では、タミル語とシンハラ語(スリランカ語)の投稿があるという問題。英語の記事は問題ありません。しかし、sinhalaとtamilのキャラクターは? ?? ???保存または更新された後私たちがやっていることは、Googleからコピー&ペーストして、wordpressエディタに直接翻訳して翻字することです。

私はmysqlテーブルをチェックしました。 ???文字。しかし、phpmyadminを使用してDBに直接挿入すると、文字は正常に表示されます。 phpmyadmminとwordpressの両方で。しかし、編集または更新されると、それは戻ることになる??? ?????

Wordpressの文字セットはutf8で、collat​​eは ''です。さまざまな設定に変更しようとしましたが、これまでコメントアウトしていましたが、これまでに何もできませんでした。

解決策を知っている人はいますか?私たちは別のテストサーバー上で同じ設定を行い、すべての機能は問題なくそのサーバー上で動作します。特定のPHP設定(btw、php iniのデフォルトの文字セットがutf8に設定されています)が問題を引き起こしていますか? enter image description here

+1

'wp-config.php'ファイルの'データベース文字セット 'と'照合 'セットは何ですか?探す値は 'DB_CHARSET'と' DB_COLLATE'です。 –

+1

もう一つ考慮すべきことは 'WP'バージョンです。古いバージョン(* 2.2まで私は*信じています)では、デフォルトのDBのcharset/collat​​ionは 'latin'です。だから、それもチェックしてください。 –

+0

@HimelNagRana DB-CHARSETはutf8です。 DB-COLLATEは ''です。空の値。 DB文字セットはutf8mb4_unicode_ciです。 wpバージョンは最新の4.x.xです。返信してくれてありがとう。 :D –

答えて

0

CHARSETは重要です。 COLLATEは(この質問のために)ありません。

おそらく何が起こったか。

  • は、あなたは、クライアントのバイトはUTF8でエンコードされた(正しい)であることを宣言するSET NAMES utf8を言っ
  • INSERTing非西洋ヨーロッパのテキストです。
  • しかし、列はCHARSET latin1と宣言されています。
  • 中国語の文字をlatin1に変換する方法がないため、 '?'保存される。

を入力して、列がではないことを確認してください。

+0

返信いただきありがとうございます。問題の列(投稿のタイトル、投稿のコンテンツ)はutf8です。しかしwp-postsテーブルの他のいくつかのカラムはあなたの言ったラテンと同じです。しかし、phpmyadminを介してテキストを直接テーブルに挿入するたびに、サイトに表示されます。ポストを更新した後でのみ、それを再び保存しますか???? –

+0

WPとphpmyadminを混在させる? utf8を使用してすべてが接続されていることを確認します。 user = rootは使用しないでください。 –