Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 将UTF-8字符直接解析到UTF-8数据库_Php_Mysql_Utf 8 - Fatal编程技术网

Php 将UTF-8字符直接解析到UTF-8数据库

Php 将UTF-8字符直接解析到UTF-8数据库,php,mysql,utf-8,Php,Mysql,Utf 8,只是一个简单的问题。。我在MySQL数据库和HTML文件中都使用UTF-8作为标准。。我不明白的一件事是,为什么字母在SQL中的显示方式与我键入字母时的显示方式不同。我确信当使用UTF-8时,它应该以与我编写它完全相同的方式放置 是否有一个类或其他东西可以自动将所有发布的数据保存在UTF-8中,然后按原样发布?文本编辑器也会对字符编码产生影响。请确保使用可以将字符编码设置为UTF-8的文本编辑器或IDE。尝试此1。方法如果不成功,则使用2.metod。最后一种方法是使用notepad2编辑器打开

只是一个简单的问题。。我在MySQL数据库和HTML文件中都使用UTF-8作为标准。。我不明白的一件事是,为什么字母在SQL中的显示方式与我键入字母时的显示方式不同。我确信当使用UTF-8时,它应该以与我编写它完全相同的方式放置


是否有一个类或其他东西可以自动将所有发布的数据保存在UTF-8中,然后按原样发布?

文本编辑器也会对字符编码产生影响。请确保使用可以将字符编码设置为UTF-8的文本编辑器或IDE。

尝试此1。方法如果不成功,则使用2.metod。最后一种方法是使用notepad2编辑器打开HTML文件,将编码从文件菜单更改为UTF8并保存。我认为这将是一个解决方案

  • 方法
  • $dsn=$config[“驱动程序”]。:dbname='$配置['dbname'];主机='$配置['host']; . ';字符集=UTF-8';//-->这就是解决办法 试一试{ $this->link=new-PDO($dsn,$config['user'],$config['pass']); //mysql驱动程序忽略$dsn中的charset指令(是的,这太糟糕了) 如果($config[“driver”]=“mysql”) $this->link->exec(“设置名称utf8”); } 捕获(PDO$e){ die(“Hata变量:.$e->getMessage()); } 其他:

    $encodings = array("windows-1254","utf-8", "iso-8859-9" ); $data = file_get_contents($TempSrc); $data=mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, $encodings)); $encodings=数组(“windows-1254”、“utf-8”、“iso-8859-9”); $data=文件获取内容($TempSrc); $data=mb_convert_编码($data,'UTF-8',mb_detect_编码($data,$encodings));
    我的解决方案 如果有人遇到类似的问题,我的问题可以通过在PDO连接
    、数组(PDO::MYSQL\u ATTR\u INIT\u COMMAND=>“SET NAMES'utf8'”之后添加这一行来解决

    现在连接字符串如下所示:


    $conn=newpdo('mysql:host=localhost;dbname=$dbname',$username,$password,数组(PDO::mysql\u ATTR\u INIT\u COMMAND=>“SET NAMES'utf8'”)

    文本编辑器?如果你指的是Dreamweaver,我正在使用它。这里有一个关于Dreamweaver中字符编码的链接:。更多信息:嘿。。谢谢你的回答。。我需要的是在我的PDO连接
    之后添加这一行,数组(PDO::MYSQL\u ATTR\u INIT\u COMMAND=>“SET NAMES'utf8'”
    )。以后一切都很顺利,请不要在问题中修改答案。如果您已经独立于下面的答案解决了问题,或者使用了多个不同的答案(主要不是某个答案),请写下您自己的答案并接受它。感谢您的答案和链接。这本书内容丰富,我从中学到了很多东西,但说真的,这本书的标题并没有描述我的任何问题,这显然不是我想要寻找的东西。。我怎么知道这就是答案?不过还是要谢谢你。。 $encodings = array("windows-1254","utf-8", "iso-8859-9" ); $data = file_get_contents($TempSrc); $data=mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, $encodings));