複数のテーブルを持つデータベースがあります。データベースとテーブル、およびテーブルのすべての行がutf8_romanian_ci
に設定されます。
発音区別符号を含む、インポートしたすべての名前が正しく表示されません。
例:テーブルにMaÂehx
を導入すると、M
だけになります。
テーブルのデータはcsv
ファイルからインポートされます。 Excelでは、発音区別符号は正常に表示されます。
どうすればこれを解決できますか?
UTF-8は気まぐれな愛人です。一般的なWebアプリケーションの場合、UTF-8をさまざまなレベルで設定する必要があります。 phpMyAdminコードがUTF8で正常に機能する場合でも、真空状態では動作しません。サーバーの構成が重要です。データベースもデータベースのデータソースも同様です。 phpMyAdminに関心のある領域に特に焦点を当てて、一般的なアプリケーションで潜在的な摩擦の領域を要約しましょう。
A。データソース
テキストファイルなどからデータベースにデータをインポートする場合は、適切なエンコーディングが必要です。分音記号はExcelに表示される場合がありますが、エンコーディングは何でもかまいません。したがって、正しくは見えるが適切にインポートされないCSVファイルを作成できます。 EditPadなどのテキストエディターやIDE Komodoなど)でCSVファイルのエンコードを確認して変換できます。多くの人が持っているNotepad ++では、「エンコード」を選択して表示できます。現在のエンコーディング、および必要に応じてエンコーディング/ UTF8への変換を選択できます。
B。データベース内。テーブルの文字セットと照合順序をUTF-8に設定する必要があります。すでにそうしているようです。
そうでない場合は、次のようなものが必要です。
ALTER TABLE MyTable
DEFAULT CHARACTER SET utf8,
COLLATE utf8_general_ci;
これは一般的な設定ですが、ルーマニア語の照合も正常に機能するはずです。
C。データベースへの接続。次のようなものが必要です。
$connectDSN = "mysql:Host={$db_Host};dbname={$db_name};charset=UTF-8";
PhpMyAdminは正しく接続する必要があります。ランディングページに、次のように表示されます。
Server charset: UTF-8 Unicode (utf8)
そうでない場合は、読み続けてください。
D。phpはUTF8を処理する必要があります。 php.iniでは、次のようなものが必要になります。
default_charset = UTF-8
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.detect_order = auto
mbstring.substitute_character = “0xFFFD”
サーバーの設定はphpinfo()で確認できます。共有ホストでは、通常php.iniにアクセスできず、スクリプトで直接設定を変更する必要があります。ちなみに、mb関数を使用することを忘れないでください。
E。ヘッダー設定
ブラウザが何を取得しているかを知るには、phpから送信された次のようなヘッダーを受信する必要があります。
<?php header('Content-type: text/html; charset=UTF-8'); ?>
これはphpMyAdminの問題ではありません。 Firefoxでは、Web Developer拡張機能を使用して、情報/ページ情報の表示に移動できます。 [全般]タブで、エンコードが表示されます。
F。HTMLメタタグ
これは、ブラウザを支援するために推奨されます。
<meta charset="UTF-8">
これはphpMyAdminの問題ではないはずです。もう一度ブラウザで、表示されているエンコーディングを確認してください。
G。フォント
最新バージョンは代替フォントについてはかなり優れていますが、ブラウザには一部の文字を表示するためのフォントがない場合があります。あなたの場合、これはおそらく問題ではありません。
したがって、物事がうまくいかない可能性がある多くの場所があります。
これが問題の特定に役立つことを願っています!
すべてが揃ったら、魔法をかけます...どこでもUTF8を入手できます。
そして、忘れないでください:
ಬಾಇಲ್ಲಿಸಂಭವಿಸುಇಂದೆನ್ನಹೃದಯದಲಿ
ನಿತ್ಯವೂಅವತರಿಪಸತ್ಯಾವತಾರ