从 MySQL 数据库中获取带有特殊字母的字符串

Posted

技术标签:

【中文标题】从 MySQL 数据库中获取带有特殊字母的字符串【英文标题】:Fetching strings with special alphabet from MySQL database 【发布时间】:2018-04-07 19:00:10 【问题描述】:

我有一个 php 变量,它的值是从 html 表单中设置的。 变量的值为

$x = rueFrédéricMistral

如您所见,它有一个特殊的字母表 (e_tilda)。

现在当我回显 x 时,它给了我以下信息:rueFr�d�ricMistral

我不确定如何回显原始名称。 我尝试了函数htmlspecialchars(),但它不起作用。 在阅读时,我了解到该功能不适合我的情况。

谁能帮帮我。

提前致谢。 尼拉杰

【问题讨论】:

Getting special characters out of a mysql database with PHP的可能重复 php.net/manual/en/function.iconv.php 代码增强 【参考方案1】:

至少有 3 个可能的原因:

    (很可能)您的 html 页面中的字符集定义不正确,请确保您的页面的 <head> 部分中有 <meta charset="utf8"/> 之类的内容 您可能为数据库连接定义了错误的字符集。有关用于连接数据库的函数/库,请参阅文档 (不太可能)数据库内的内容可能会自行损坏,例如由于使用无效字符集进行迁移/插入。

【讨论】:

【参考方案2】:

你也可以试试这个

echo htmlentities($x);

你也可以用这个

服务器端

<?php
    header('Content-Type: text/html; charset=ISO-8859-1');
?>

客户端

    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <?php
            $x = "rueFrédéricMistral";
            echo $x;
        ?>
    </body>

【讨论】:

我试过了,但它不起作用。但是,当我尝试在 javascript 中使用 $x 时,问题就出现了。我在 javascript 中编写了以下代码: var abcd = ; alert(abcd).... 但我在警报消息中得到 null

以上是关于从 MySQL 数据库中获取带有特殊字母的字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP 带有特殊字符的大写字母

带有字母、数字、任意顺序的可选特殊字符的正则表达式单词

如何在 Redis 中批量删除数十万个带有特殊字符的键

如何在 Redis 中批量删除数十万个带有特殊字符的键

Leetcode(周赛):移除字母异位词5234,最大连续楼层数6064

Leetcode(周赛):移除字母异位词5234,最大连续楼层数6064