10

mysql からデータを取得します

これは通常、私がデータベースに持っているものです

これは通常、私がデータベースに持っているものです

Seçimler, Şirketler ve Siyasi Partiler

それは印刷します

Se�imler, ?irketler ve Siyasi Partiler

私は sql yog を使用し、自分のデータベースでいくつかの設定を変更します

文字セットをUTF8に設定し、照合はutf8_turkish_ciです

それでもそのようなデータを取得します

Se�imler, ?irketler ve Siyasi Partiler

なぜ?どうしたの ?

4

3 に答える 3

17

この問題は、どこかで文字エンコーディングを指定し忘れたようです。これを解決するには、文字エンコーディングをすべての場所でutf-8に設定していることを確認してください(実際には utf-8 である必要はありません。どこでも同じです。ただし、何かを台無しにして、いくつかの場所を変更する必要がある場合)。とにかく、utf-8 を使用することを強くお勧めします):

  • MySQL に utf-8 を使用するように指示します。これを行うには、これを my.cnf に追加します。

    collation_server = utf8_unicode_ci
    character_set_server = utf8
    
  • mysql を操作する前に、次の 2 つのクエリを送信します。

    SET NAMES 'utf8';
    CHARSET 'utf8';
    

    または、代わりに、接続を開いた後にphpにこれをさせます:

    mysql_set_charset('utf8', $conn);
    
  • データベースのデフォルトの文字セットとして UTF-8 を設定します

    CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8';
    
  • テーブルについても同じことを行います。

    CREATE TABLE `my_table` (
      -- ...
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
  • クライアントがブラウザーであると仮定すると、コンテンツを utf-8 および正しいヘッダーとして提供します。

    header('Content-type: text/html; charset=utf-8');
    

    ブラウザが確実に理解できるようにするには、メタタグを追加します。

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    
  • 最後に、utf-8 を使用してフォームを送信するようブラウザに指示します。

    <form accept-charset="utf-8" ...>
    
于 2012-05-04T07:02:45.240 に答える
3

Charset to UTF8選択クエリでも言及する必要があります。

SET NAMES 'utf8';
CHARSET 'utf8';
于 2012-05-04T07:02:49.390 に答える