2015-07-30 4 views
-1

Я пытаюсь сохранить некоторую информацию в моем db. Одно из полей - японские имена. Я получаю сообщение об ошибке:Японский/корейский в таблицу MySQL

Warning: #1366 Incorrect string value: '\xE3\x83\xA9\xE3\x83\x87...' for column 'japan-name' at row 1 

Так что я не могу charsage charset моего db. Могу ли я использовать PHP или Javascript для преобразования японского/корейского языка в нечто другое, и когда я прочитаю его, переконвертируйтесь к японскому/корейскому языку?

+0

попытка 1) резервное копирование таблицы 2) обрезать старую таблицу 3) применить модификацию, а затем 4) восстановить данные –

+0

Мне действительно нужно что-то использовать для преобразования. –

+0

utf-8 сохраняет данные unicode в таблице ... но другой способ - кодировать и сохранять, а затем декодировать и отображать –

ответ

0

PHP предлагает функции base64_encode() и base64_decode(). Они быстры и накладывают штраф в размере около 33%. Вы можете использовать первый, чтобы преобразовать ваш восточноазиатский текст utf-8 в то, что выглядит как тарабарщина в ASCII, прежде чем вы храните его в своей таблице. Второй будет конвертировать его обратно после его получения.

Вот пример:

$jp = " 私はガラスを食べられます。それは私を傷つけません。"; 
$jpe = base64_encode ($jp); 
$jpd = base64_decode ($jpe); 

После выполнения этих строк, переменная $jpe имеет значение

IOengeOBr+OCrOODqeOCueOCkumjn+OBueOCieOCjOOBvuOBmeOAguOBneOCjOOBr+engeOCkuWCt+OBpOOBkeOBvuOBm+OCk+OAgg==

, который хранит только штраф в ASCII или Latin-1 столбца.

-2

UTF-8 сохраняет данные Юникода в таблице ... но другой способ для кодирования и сохранения, а затем декодировать и отображать

обновление: поиск по сети и нашел ответ на How do you Encrypt and Decrypt a PHP String?

define("ENCRYPTION_KEY", "[email protected]#$%^&*"); 
$string = "This is the original data string!"; 

echo $encrypted = encrypt($string, ENCRYPTION_KEY); 
echo "<br />"; 
echo $decrypted = decrypt($encrypted, ENCRYPTION_KEY); 

/** 
* Returns an encrypted & utf8-encoded 
*/ 
function encrypt($pure_string, $encryption_key) { 
    $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); 
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    $encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv); 
    return $encrypted_string; 
} 

/** 
* Returns decrypted original string 
*/ 
function decrypt($encrypted_string, $encryption_key) { 
    $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); 
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
    $decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv); 
    return $decrypted_string; 
} 
+0

LOl не подходит, вы только что написали, что я спросил. Мне нужно что-то конвертировать ... некоторая команда ... Мне не нужно, чтобы вы повторили то, что я спросил LOOOL –

+0

Итак, если вы не собираетесь мне помогать с какой-либо программой преобразования или javascript-функции php, я не буду отмечать ее как правильную. –

+0

обновил ответ для вас –

Смежные вопросы