是否有任何可以转换的php函数
ابب
等同于unicode字符
ت ب ا
我已经google了很多,但我认为没有任何PHP内置功能可用于此目的。实际上,我想将用户提交的注释(以unicode字符存储)存储到mysql数据库中。但它以这种格式ابب
存储在mysql数据库中。我也在mysql查询中使用SET NAMES 'utf8'
。输出是真正的unicode字符,很好,但mysql中的插入格式为ابب
,我不想要。
任何解决方案??
答案 0 :(得分:1)
我用谷歌搜索了一个非常有趣的解决方案here
我也尝试过,我认为它的工作
<?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 :(得分:1)
如果你
1 - 将您的html页面的lang编码设置为utf-8
,其中包括您的表单
2 - 仅使用表单输入相关MySQL数据库表的输入
3 - 将所有排序规则设置为MySQL(表格和行排序规则)中的utf8_unicode_ci
4 - 如果您有预约,您还可以将MySQL DB排序规则作为utf8_unicode_ci
那么你也不会在你的mySQL记录中看到实体
这是我使用的解决方案,我的母语也有很多unicode字符。
下面我介绍我的数据库连接php代码&amp;建议(使用准备好的陈述;请检查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");
}
答案 2 :(得分:0)
我认为您应该能够使用mysql_set_charset()
http://php.net/manual/en/function.mysql-set-charset.php设置mysql连接编码,这样当您从数据库中检索这些并显示它们时,它们应该没问题。
根据php.net“从PHP 5.5.0开始,这个扩展已被弃用,将来会被删除。相反,应该使用MySQLi或PDO_MySQL扩展。”