Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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-json中的字符集_Php_Mysql_Json_Character Encoding - Fatal编程技术网

Php mysql-json中的字符集

Php mysql-json中的字符集,php,mysql,json,character-encoding,Php,Mysql,Json,Character Encoding,我有这个php脚本来获取值 <?php header("Content-type: application/json; charset=utf8_general_ci"); require_once('db.php'); $query = 'SELECT * FROM `hebreux`'; $stm = $db->prepare($query); $stm->execute(); $rows = $stm->fetchAll(PDO::FETCH_A

我有这个php脚本来获取值

<?php
header("Content-type: application/json; charset=utf8_general_ci");
require_once('db.php');
$query = 'SELECT * FROM `hebreux`';
$stm = $db->prepare($query);
$stm->execute();
$rows = $stm->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rows);
您应该调整两侧
通过设置连接字符集,在代码的一侧
在数据库连接启动后执行这些查询

header("Content-type:application/json;charset=utf8_general_ci");
require_once('db.php');
$sql = 'SET NAMES "UTF8"';
$stm = $db->prepare($sql);
$stm->execute();
$sql = 'SET CHARACTER SET utf8' ;
$stm = $db->prepare($sql);
$stm->execute()
$sql = "SET COLLATION_CONNECTION = 'utf8_unicode_ci'" ;
$stm = $db->prepare($sql) ;
$stm->execute()
 

$query = 'SELECT * FROM `hebreux`';
$stm = $db->prepare($query);
$stm->execute();
$rows = $stm->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rows);
然后,您编写代码的文件将使用任何程序(如记事本+)打开,该程序允许您调整文件编码,然后将所有文件更改为UTF-8-BOM

您可以通过以下任何方式调整数据库 如果将PDO抽象层与PHP一起使用≥ 5.3.6,您可以在DSN中指定字符集:

$dbh = new PDO('mysql:charset=utf8mb4');
如果您使用的是mysqli,则可以调用set_charset():

如果您使用的是纯mysql,但碰巧运行的是PHP≥ 5.2.3,可以调用mysql\u set\u charset


如果驱动程序没有提供自己的机制来设置连接字符集,您可能需要发出一个查询来告诉MySQL您的应用程序希望如何对连接上的数据进行编码:set NAMES'utf8mb4'。

charset=utf8\u general\u ci
在HTTP上下文中不是一件事。我能做些什么呢?谢谢您“问号“在。注意:问号是在插入过程中创建的,希伯来文文本已丢失。您好,谢谢您的帮助。您是否可以将所有脚本与我的脚本一起提供?请谢谢我更新我的答案,试试看,但是你需要用记事本更新文件编码。真的非常感谢你的帮助,祝你愉快。欢迎你。Carleth这不是你设置连接字符集的方式。请不要散布虚假信息。
$mysqli->set_charset('utf8mb4');       // object oriented style
mysqli_set_charset($link, 'utf8mb4');  // procedural style