Japanese/korean 变成 MySQL table

Japanese/korean into MySQL table

我正在尝试在我的数据库中存储一些信息。其中一个字段是日语名称。我收到一个错误:

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

所以我无法更改我的数据库的字符集。我可以使用 PHP 或 Javascript 将 Japanese/Korean 转换为其他内容吗?当我阅读它时,它们会重新转换为 Japanese/Korean 吗?

utf-8将unicode数据保存在table...但其他方式是编码保存然后解码显示

更新: 在网络上搜索并在 How do you Encrypt and Decrypt a PHP String?

找到答案
define("ENCRYPTION_KEY", "!@#$%^&*");
$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;
}

PHP 提供 base64_encode() and base64_decode() 功能。它们速度很快,并且会造成大约 33% 的存储损失。在将它存储到 table 之前,您可以使用第一个将 utf-8 东亚文本转换为 ASCII 中看起来像乱码的内容。第二个将在您检索后将其转换回来。

这是一个例子:

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

在 运行 这些行之后,$jpe 变量的值为

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

在 ASCII 或 Latin-1 列中存储得很好。