Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在mysql中编码西里尔字母?_Php_Mysql - Fatal编程技术网

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);再次感谢。:)