私はDBを持っています。latin1をUTF8に変換する
私は今 をutf8にタイトルを変換すると、コンテンツフィールド - すべてのデータは次のようになります。פורטל רעל × ×¤×ª×— רשמית!
私はそれが通常のヘブライ語の文字になりたいです。
おかげ
私はDBを持っています。latin1をUTF8に変換する
私は今 をutf8にタイトルを変換すると、コンテンツフィールド - すべてのデータは次のようになります。פורטל רעל × ×¤×ª×— רשמית!
私はそれが通常のヘブライ語の文字になりたいです。
おかげ
このデータベースからmysqldumpを作成できます。その後、メモ帳++、ダンプファイルを開いてUTF8に変換し、最初のSET NAMES演算子を含むすべてのエンコーディングをutf-8に置き換えます。
phpMyAdmin(デフォルト設定)でファイルにダンプする場合、デフォルトで表示されているように、UTF-8ではなく出力ファイルのISO-8859-1を使用してください。
は、データベース全体を変換する必要がある場合、あなたはdatabaseback.sql
ファイルとしてバックアップすることができます
ALTER TABLE `tablename` CHANGE `field_name` `field_name` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
を試してみてください、あなたのコマンドラインを形成 iconv -f latain -t utf-8 <databaseback.sql> databaseback.utf8.sql
あなたはhttp://www.php.net/manual/en/function.iconv.php
を使用することができます コマンドラインにアクセスできない場合にphpの各行を変換する
最後には、phpMyAdminの各フィールドの照合を変換することを忘れないでください、あなたは簡単に戻ってUTF8をresotreでき
更新
あなたがiconv is not recognized
を得た場合、それはあなたがいないことを意味しiconv
は
をインストールして、はるかに簡単なソリューションです:Unicodeの に の移行MySQLのデータ
http://daveyshafik.com/archives/166-migrating-mysql-data-to-unicode.html
CMDで試しました - 'iconv 'は、実行可能なプログラムまたはバッチファイルとして認識されません。 – WEBProject
変換を行う少しのPHPスクリプトを書くことができます。 http://www.php.net/manual/en/function.mb-detect-encoding.phpとhttp://php.net/manual/en/function.mb-convert-encoding.phpを参照してくださいこれが私のやり方です。
厳密なモードを使用してください! http://www.php.net/manual/en/function.mb-detect-encoding.php#102510
擬似コードではsthです。このように:それは使用することができます
CONVERT(BINARY AS CAST(latin1の使用(フィールドを変換))UTF8を使用) :
str = getDataAsString()
if(!isUTF8(str)) {
str = convert2UTF8(str)
}
saveStr2DB()
私はdetecを使用しているときにutf-8を取得しました。だからwierd。 – WEBProject
厳格なモードとは何ですか? – WEBProject
http://www.php.net/manual/en/function.mb-detect-encoding.php#102510を参照してください。 - 最後のパラメータを "true"に設定する必要があります。そうすれば正しいエンコーディングを見つけることができます:) – Tobias
次のMySQL関数は、二重符号化後の正しいUTF8文字列を返します。
UPDATE tablename SET field = CONVERT(CAST(フィールドUSING latin1)AS BINARY)USING utf8);フィールドを修正するためのUPDATEステートメントを使用します。
これは特殊文字上の単語を切り捨てます:( –
'phpmyadmin'で行うと、そのテーブルに移動して属性を変更します... simple – diEcho
すでに試してみましたが、pmaのデータは同じように見えます。 – WEBProject
これ以上の情報がなければ何をすべきかを言うのは難しいですが、注意すべき点は、MySQLのテーブルの文字エンコーディングを変更するとデータを新しいエンコーディングに変換しない*ということです。データベースに格納されている実際のバイト数は変わりません。 –