Php 如何在mysql中编码西里尔字母?
怎么了?:-)Php 如何在mysql中编码西里尔字母?,php,mysql,Php,Mysql,怎么了?:-) 我有一个问题,希望你能帮我解决 我的一个朋友有一个简单可靠的html网站,我实现了一个小php;文章的CRUD系统。。。我遇到的问题是从mysql数据库中放置和获取西里尔字符 mysql_query("SET NAMES UTF8"); 我想实现的是下一步: 在主导航中有一些单独的部分,我想在mysql中放置它们的名称、ID和项目顺序,而不是提取名称并将每个名称作为链接。名字应该是西里尔字母 当我使用phpmysql\u fetch\u assoc函数,试图在数据库行中显示插入
我有一个问题,希望你能帮我解决 我的一个朋友有一个简单可靠的html网站,我实现了一个小php;文章的CRUD系统。。。我遇到的问题是从mysql数据库中放置和获取西里尔字符
mysql_query("SET NAMES UTF8");
我想实现的是下一步:在主导航中有一些单独的部分,我想在mysql中放置它们的名称、ID和项目顺序,而不是提取名称并将每个名称作为链接。名字应该是西里尔字母 当我使用php
mysql\u fetch\u assoc
函数,试图在数据库行中显示插入西里尔字符的名称时,问题出现了,行的排序规则是utf8\u general\u ci
,我以??
而不是原始字符结束。如果我通过提交表单向mysql提交西里尔文字符,它会显示如下内容
我如何解决这个问题,提前谢谢!?:-) 如果真的是mysql抓取协会搞砸了,你应该试试: 从文档中: 注: 这是改变的首选方式 字符集。使用mysql_query()来 执行集合名称。。不是 推荐
另外,请确保您的文件保存为utf8,并选中/确保在连接到数据库后调用此选项
mysql_query("SET NAMES UTF8");
还要确保HTML文件在输出之前已将字符集元标记设置为UTF-8或发送头
header("Content-Type: text/html; charset=utf-8");
在我将表中的“Collation”列编码为“utf8_-bin”之前,我也遇到了同样的问题。对于那些对传统项目有更复杂问题的人来说,从PHP 5.6和MYSQL 5.1之前的版本升级到PHP 7以及最新的MYSQL/Percona/MariaDB等 如果项目使用utf8编码($value),您可以尝试从正在准备的值中删除该函数,并使用接受的答案为所有输入设置UTF-8编码 ---或--- 尝试将utf8\u编码($value)替换为mb\u转换\u编码($value,'utf-8') PDO用户 如果您使用PDO,这里有两种设置utf8的方法:
$options = [
\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
];
new \PDO($dsn, $username, $passwd, $options);
---或---
我可以确认mb\u convert\u编码($value,'utf-8')使用utf8\u unicode\u ci对西里尔文和Umlaut有效。mysql\u查询(“SET NAMES utf8”);完成了任务。谢谢。:)关于html,它将元标记设置为UTF-8。不建议执行集合名称。请看我的答案。没什么,mysql\u set\u字符集与mysql\u query(“set CHARACTER set UTF8”)相同,阅读,set charset更安全,但因为他知道排序规则,所以实际上是一样的。谢谢。)我来看看这些函数。编辑:我使用:mysql\u set\u charset('utf8',$con);再次感谢。:)