0

(符号) UTF8 の問題があります。これは何が起こっているかです:

  • データベースは 6 年または 7 年以上前のものです。サイトを復活させようとしていますが、UTF8 エンコーディングがうまくいきません。編集編集: 別の刺し傷をした後、ほとんどのキャラクターを機能させることができました。たとえば、Grüßgott が機能するようになりました。ただし、カーリーの一重引用符と二重引用符で黒いひし形を取得しています。

  • 私はたくさんのスタックオーバーフロー検索を行い、多くのことを試しました。

  • 私が取り組んでいるローカル開発データベースは、UTF8 と utf8_general_ci でセットアップされています。各テーブルを手動で latin1_general_ci_as から utf8_general_ci に変換し、チャートセットも UTF8 に変更しました。それらのいくつかはクエリで機能しなかったので、手動でテーブル設計に行ったところ、修正されたようです。一部のテーブル COLUMNS can (および私の管理では) latin1_general_ci_as に設定できることを認識していますが、1 つの特定のコードを使用してテスト ケースを実行しており、その (ブログ) は間違いなく UTF8 です。

  • データベース接続は次のように設定されます。

    $connection = mysql_connect($DB_SERVER, $DB_USER, $DB_PASS);
    mysql_query("SET character_set_results=utf8", $connection);
    mb_language('uni'); 
    mb_internal_encoding('UTF-8');
    mysql_select_db($DB_NAME, $connection);
    mysql_query("SET names 'utf8'",$connection);
    
  • このサイトは手続き型の PHP です。functions.php ファイルでは、以下に示す例のように、データベースからデータを選択します。私がこれを示している唯一の理由は、毎回何かを設定する必要があると言っている人を見た私の読書にありますが、データベースから何かを取得するたびに何かを宣言する必要がないことを本当に望んでいます.

    query("SELECT * FROM table_name WHERE data='$something[unique]'");
    
  • このサイトは HTML5 で、header.php にこれがあります。私が知る限り、これはすべて問題ありません。

    <?
    header('Content-Type: text/html; charset=utf-8');
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
    

だから、それが私がいるところです。私は本当に問題を一度だけ解決し、二度と心配する必要がないようにしたいと思っています. どんな助けやアイデアも大歓迎です。

4

1 に答える 1

0

mysqldump を試して、ISO-8859-1 から utf-8 に変換できます。

mysqldump --user=username --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql
chgrep latin1 utf8 dump.sql (or when you have.   sed -i "" 's/latin1/utf8/g' dump.sql) 
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql --user=username --password=password --default-character-set=utf8 dbname < dump.sql
于 2013-11-14T17:02:16.507 に答える