我正在建立一个从另一个页面获取文本并将其插入数据库的网站。
问题是所有特殊字符都使用HTML编码保存在数据库中,因此我需要使用以下方法转换输出:<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
我的意思是,我现在所拥有的不仅仅是保存字符“”,HTML版本“ '
”也保存在数据库中。保存西班牙语字符或其他特殊字符时也会发生这种情况。我得到了“ ñ
”,而不是jample的字母“ñ”。
这浪费了数据库中的空间,我还需要稍后使用content-type转换输出,因此:
我如何才能在保存之前转换或设置字符集,或者只是让MySQL转换它?
如果您需要了解以下如何连接数据库的信息:
function dbConnect() {
$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die ('Error.');
return $conn;
}
$conn = dbConnect();
$stmt = $conn->stmt_init();
希望你能帮我!!
谢谢。
最佳答案
您可以使用html_entity_decode()
将HTML转换为(真实)字符编码。
<? echo html_entity_decode("ñ", ENT_COMPAT, "UTF-8"); ?>
ñ
请注意,“ HTML”不是通常意义上的字符编码,因此
iconv
之类的库或MySQL本身都无法理解。我还建议(按照上面的示例)使整个应用程序使用UTF-8。由于Unicode已得到广泛支持,因此像ISO8859这样的单字符编码实际上已过时。