[英]How to convert HTML code of Unicode to Real Unicode Character
有没有可以转换的PHP函数
ابب
它等同于unicode字符
ت ب ا
我已经google了很多,但我认为没有任何PHP内置功能可用于此目的。 实际上,我想将用户提交的注释(以unicode字符存储)存储到mysql数据库中。 但它以这种格式存储ابب
在mysql数据库中。 我也在mysql查询中使用SET NAMES 'utf8'
。 输出是真正的unicode字符,很好,但在mysql中的插入是这种格式ابب
我不想要的。 任何解决方案
我用谷歌搜索了它,并在这里发现了一个非常有趣的解决方案
我也试过了,我认为它的工作原理
<?php
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
foreach($trans_tbl as $k => $v)
{
$ttr[$v] = utf8_encode($k);
}
$text = 'ابب';
$text = strtr($text, $ttr);
echo $text;
?>
对于mysql解决方案,您可以将字符集设置为
$mysqli = new mysqli($host, $user, $pass, $db);
if (!$mysqli->set_charset("utf8")) {
die("error");
}
如果你
1 - 将您的html页面的lang编码设置为utf-8
,其中包括您的表单
2 - 仅使用表单在相关的MySQL数据库表中输入输入
3 - 将所有排序utf8_unicode_ci
设置为MySQL中的utf8_unicode_ci
(表和行排序规则)
4 - 如果你有预约,你也可以将MySQL DB校对作为utf8_unicode_ci
那么你也不会在mySQL记录中看到实体
这是我使用的解决方案,我的母语也有很多unicode字符。
下面我介绍我的数据库连接php代码和推荐(通过使用准备好的语句;请查看http://php.net/manual/en/mysqli.quickstart.prepared-statements.php )
//mysql bağlantısı
global $db_baglanti;
$db_baglanti = new mysqli(vt_host, vt_user, vt_password, vt_name);
if ($db_baglanti->connect_errno)
{
echo "MySQL bağlantısı kurulamadı: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (!$db_baglanti->set_charset("utf8"))
{
printf("utf8 karakter setinin yüklenmesinde problem oluştu: %s\n", $db_baglanti->error);
}
else
{
$db_baglanti->set_charset("utf8");
}
我认为你应该能够使用mysql_set_charset()
http://php.net/manual/en/function.mysql-set-charset.php来设置mysql连接编码,这样当你从数据库中检索它们并显示它们时应该没事。
根据php.net“从PHP 5.5.0开始,这个扩展已被弃用,将来会被删除。相反,应该使用MySQLi或PDO_MySQL扩展。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.