2

したがって、同じフィールドを持つ'utf8_general_ci'というテーブルがあります。

utf8文字を入れることができませんでした。すべて「????」と表示されました。次に、テーブルを「MyISAM」に変更しました。これで、PhpMyAdminからutf8データを挿入できます(このようなことが初めて発生します)。

しかし、それでもPHP側からは機能しません。'āāā'を挿入すると'???'と表示されますが、奇妙な部分は'žžžēēē'を挿入すると'žžž???と表示されることです。いくつかのutf8文字が機能しますか?PHPファイルはUTF-8です

CREATE TABLE IF NOT EXISTS `company` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=5 ;

$dbConnection = mysql_connect("localhost","*****","*****");
mysql_query("SET NAMES 'utf8'", $dbConnection);
mysql_query("SET CHARACTER SET 'utf8'", $dbConnection);
mysql_select_db('cherrysystem', $dbConnection);
mysql_query("INSERT INTO `company` (`title`) VALUES ('āāčč')",$dbConnection);

解決済み

さて、私の場合の問題は、utf8を使用するようにMySqliniファイルを設定する必要があることでした。デフォルトでは、それは別のものでした。私はWampサーバーを使用しており、追加の構成なしで常に機能していましたが、この場合は機能しませんでした。

 character-set-server=utf8
 collation-server=utf8_general_ci
4

1 に答える 1

1

明らかに、データを処理する方法では、何かが「Unicode」ではありません。

これが私のトップ7の通常の容疑者です:

  • コードを含むPHPファイルはUTF-8自体ではありません
  • データベース接続はUnicodeに準拠している必要があります(SET NAMES'utf8'
  • 非ユニコードソースからインポートする場合、挿入されたデータはutf8でエンコードする必要があります。
  • データの格納に使用されるテーブル列を確認してください
  • データの表示に使用されるHTMLファイルはUTFではありません(ポイント1と同じ)
  • で宣言されたHTML文字セットmeta tagsもutf-8である必要があります
  • ...ポイント7はありません(おそらくコメントにあります)

お役に立てれば!

于 2012-05-31T12:14:18.830 に答える