4

こんにちは、主に英語とドイツ語の文字を、現在 utf-8 charset に設定されている mysql データベースに保存しています。

このタイプのデータには latin1 charset を使用する必要があると想定していますが、それは正しいですか?

もしそうなら、現在utf-8で保存されているドイツ語の文字を修正するために文字セットを変更するにはどうすればよいですか?

アップデート

たぶん、それは検索の問題です...もちろん、phpを介してデータベースからデータをエクスポートすると、utf-8が返されます。検索を実行してlatin1を取得できますか?

更新 1

OK、私はウェブサイトを構築しています.htmlエンコーディングはuft-8です.dbはuft-8です.そして今、いくつかのエクスポートを実行してデータを抽出したいと思います.データはExcelシートに返されます.データはutf-8です.しかし、ここでは文字をlatin1にする必要があります...または、データベースから抽出されたExcelシートのエンコーディングは、TöstがTästを表示するようにする必要があります。今、私はこのようなデータを取得します - > Töst

更新 2

次のphpスクリプトを使用してダンプを実行しています:

http://www.fundisom.com/phparadise/php/databases/mySQL_to_excel

48行目でコードを次のように変更しました

header("Content-Type: application/$file_type; charset=utf-8");

行動に変化なし。

どうすれば問題を解決できますか?

ほぼ解決

<?php
$text = "ö is a valid UTF-8 character";
echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>

これは私が必要だと思うものです...しかし、phpスクリプトのコンテキストで確認する必要があります...明日:-)

4

4 に答える 4

2

UTF-8などの全角文字は一度使ったらもう後戻りできない…

あなたが使用できるより近いですiconv

このような

<?php
$text = "ü is still a valid ISO-8859-1";
echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>

詳細: http: //php.net/manual/en/function.iconv.php

于 2010-12-17T00:49:26.320 に答える
1

UTF-8 を使用すると、Unicode でサポートされている任意の文字を格納できます。UTF-8 を使用すると、Unicode でサポートされている任意の文字を格納できます。そのため、これを使用して latin1 文字 (これは、 Unicode がサポートするもの)。

したがって、情報ストレージについては問題ありません。データを取得するときに変換を行う必要がある場合は、DB からデータを取得するために使用するコネクタと、プログラミング言語が文字列を処理する方法によって異なります。


更新情報: PHP を使用して Web ページを作成していると仮定すると、ページが UTF8 でエンコードされていることを指定する正しいHTTP ヘッダーを送信することはできませんか?

于 2010-12-16T23:12:43.190 に答える
0

UTF-8 は、すべての意図と目的にとって最適な選択です。latin1 を使用する差し迫った理由 (他のアプリケーションとの互換性など) がない限り、それを選択してください。

ウムラウトと並べ替え順序を異なる方法で処理するいくつかの UTF-8 照合順序があります (一覧については、こちらを参照してください)。要件に応じて、どちらかを選択する必要がある場合があります。ただし、それらはすべてウムラウトを格納できます。

于 2010-12-16T23:12:36.907 に答える
0

UTF-8 がほとんどのアプリケーションに適しているという以前の回答に同意します。

ただし、あなたを待っているかもしれないトラップに注意してください! システム全体で一貫した文字エンコーディングを使用するように注意する必要があります (入力フォーム、出力 Web ページ、データにアクセスまたは変更する可能性があるその他のフロント エンド)。

なぜ単純な β や é が私の Web ページで壊れているのかを突き止めようと、不快な時間を費やしました。テキストが複数のエンコーダーを通過するケースも見てきました。単一引用符を 8 バイトに変換したことがありました。

要するに、正しい翻訳が行われると仮定しないでください。プロジェクト全体で文字エンコーディングを明示してください。

編集:あなたの更新で、あなたはすでにこの特定の喜びを発見し始めていることがわかりました. :)

于 2010-12-16T23:23:22.527 に答える