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 列中存储得很好。
我正在尝试在我的数据库中存储一些信息。其中一个字段是日语名称。我收到一个错误:
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 列中存储得很好。