PHP / MySQL中的特殊字符?mysql-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PHP / MySQL中的特殊字符?mysql

2020-05-17 14:19:59 642 1

我在数据库中有包含特殊字符的单词(大多数情况下为西班牙语,如波浪号)。在数据库中,所有内容均已保存并使用PHPmyAdmin正确显示,但是当我获取数据(使用PHP)并将其显示在浏览器中时,我得到了一个奇怪的字符,例如“?”。用一个正方形...我需要一个一般性的修补程序,因此我不必每次都转义每个字符,而且我还可以将PHP表单中的特殊西班牙字符插入数据库中...

HTML是正确的:

所有表和数据库都设置为utf8_spanish

我得到的角色:

有什么建议么???

谢谢!!!

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-18 11:12:18

    我只想提供有关vartec提出的解决方案的更多详细信息,这是(取决于您的MySQL安装)最适合您的问题的解决方案。首先,MySQL中的字符集/编码问题是一个有点复杂的主题,MySQL手册第9.1章“字符集支持”对此进行了广泛讨论。在您的情况下,尤其是9.1.4。“连接字符集和排序规则”将是最相关的。

    简而言之:MySQL必须知道客户端应用程序期望使用哪种字符集/编码(从与您的PHP脚本进行数据库渗透性交谈),因为它将对服务器端定义的内部字符集/编码中的所有字符串数据进行转码,数据库,表或列级别转换为连接字符集/编码。您在客户端使用UTF-8,因此必须告诉MySQL您使用UTF-8。这是通过MySQL命令完成的,该命令SET NAMES 'utf8'必须在打开连接时作为第一个查询发送。取决于您的安装和在PHP脚本中使用的MySQL客户端库,可以在每次连接时自动完成此操作。

    如果使用PDO,则只需设置配置参数即可

    $db = new PDO($dsn, $user, $password); $db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'"); 使用mysqli更改客户端字符集/编码更加简单:

    $mysqli = new mysqli("localhost", "user", "password", "db"); $mysqli->set_charset("utf8"); 我希望这将有助于使整个事情更容易理解。来源:stack overflow

    0 0
相关问答

1

回答

php或者java怎么连接adb for mysql,有没有文档

2022-08-26 17:35:33 414浏览量 回答数 1

1

回答

php可以搭配MySQL吗?

2021-10-06 08:37:23 1459浏览量 回答数 1

1

回答

php+mysql编码问题怎么解决呢?

2021-09-29 12:44:54 399浏览量 回答数 1

1

回答

PHP使用pdo执行mysql的插入指令以后不报错,但是数据库里没数据 ?报错

2020-06-23 13:59:03 672浏览量 回答数 1

1

回答

关于php的报错的问题,捕捉mysql错误 ?报错

2020-06-22 23:50:48 303浏览量 回答数 1

1

回答

php调用mysql的递归型存储过程问题?报错

2020-06-22 22:43:20 356浏览量 回答数 1

1

回答

PHP Mysql PDO报错?报错

2020-06-22 18:31:01 273浏览量 回答数 1

1

回答

php mysql数据库类问题?报错

2020-06-22 17:59:29 490浏览量 回答数 1

1

回答

关于PHP配置问题,Mysql配置发生冲突:报错

2020-06-14 23:04:47 555浏览量 回答数 1

1

回答

php mysql链接报错?报错

2020-06-14 20:27:35 391浏览量 回答数 1
文章
问答
问答排行榜
最热
最新
相关电子书
更多
好的 MySQL 兼容可以做到什么程度
立即下载
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
深入MySQL实战
立即下载