0

有没有可以转换的php函数

ابب

与它相等的 unicode 字符

ت ب ا

我用谷歌搜索了很多,但我认为没有任何 PHP 内置函数可用于此目的。实际上,我想将用户提交的评论(以 unicode 字符表示)存储到 mysql 数据库。但是它以这种格式存储ابب在mysql数据库中。我也在SET NAMES 'utf8'mysql查询中使用。输出是真正的 unicode 字符,很好,但是 mysql 中的插入是ابب我不想要的这种格式。有什么解决办法??

4

3 回答 3

1

如果你

1 - 设置utf-8包含表单的 html 页面的 lang 编码
2 - 仅使用表单将输入输入到相关的 MySQL db 表中
3 - 将所有排序规则设置为utf8_unicode_ciMySQL(表和行排序规则)
4 - 如果您有权限还可以将您的 MySQL 数据库排序规则设置为 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");
}
于 2013-04-05T05:52:28.747 回答
1

我用谷歌搜索并在这里找到了一个非常有趣的解决方案

我也试过了,我认为它的工作原理

<?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");
}
于 2013-04-05T05:44:51.830 回答
0

我认为您应该能够使用mysql_set_charset() http://php.net/manual/en/function.mysql-set-charset.php来设置 mysql 连接编码,因此当您从数据库中检索这些并显示它们时,它们应该没问题.

根据 php.net,“该扩展自 PHP 5.5.0 起已弃用,未来将被删除。应使用 MySQLi 或 PDO_MySQL 扩展。”

于 2013-04-05T05:45:18.067 回答