繁体   English   中英

如何将Unicode的HTML代码转换为Real Unicode Character

[英]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 = '&#1575;&#1576;&#1576';
    $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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM