Javascript UTF8字符不能与datatables和yadcf一起正确显示
我有一个UTF8格式的mysql数据库,之前我已经正确地输出了字母,但是不能让我的php使用ajax进程使用datatables来完成输出。我尝试了各种方法来显示UTF8,包括更改标题、使用mysql函数和更改json编码函数,但我无法让它工作。请帮助我正确显示UTF8而不是?s 我有:temps.php 我的服务器端处理脚本:Javascript UTF8字符不能与datatables和yadcf一起正确显示,javascript,php,mysql,utf-8,datatables,Javascript,Php,Mysql,Utf 8,Datatables,我有一个UTF8格式的mysql数据库,之前我已经正确地输出了字母,但是不能让我的php使用ajax进程使用datatables来完成输出。我尝试了各种方法来显示UTF8,包括更改标题、使用mysql函数和更改json编码函数,但我无法让它工作。请帮助我正确显示UTF8而不是?s 我有:temps.php 我的服务器端处理脚本: <?php header("Content-Type: text/json; charset=utf-8"); require( 'ssp.class.ph
<?php
header("Content-Type: text/json; charset=utf-8");
require( 'ssp.class.php' );
$table = 'articles';
$primaryKey = 'id';
$columns = array(
array( 'db' => 'title', 'dt' => 0 ),
array( 'db' => 'description', 'dt' => 1 ));
$sql_details = array(
'user' => 'root', 'pass' => 'pass', 'db' => 'test', 'host' => 'localhost'
);
$db = SSP::db($sql_details);
.....
if($clause !== ""){
$whereAll[] = $clause;
$_GET['columns'][$i]['search']['value'] = "";
}}
echo json_encode(
SSP::complex( $_GET, $db, $table, $primaryKey, $columns, null,
(!empty($whereAll) ? implode(" AND ", $whereAll) : "")
));
我有一个temp.html,其中输出数据:(由于许多代码与问题无关,所以进行了编辑)
您需要在PDO连接中强制执行
utf8
:
$db=SSP::db($sql\u详细信息);
$db->exec(“设置名称utf8”);
或者,尝试将其作为参数传递:
$sql\u details=array(
“用户”=>“根用户”,
“通过”=>“ryan”,
“db'=>“edata”,
'主机'=>'本地主机',
“字符集”=>“utf8”
);
但这并不适用于所有PHP版本
PS:为什么要将表格字段设置为类型
utf8
,而将表格字符设置为latin1
?您需要在PDO连接中强制utf8
:
$db=SSP::db($sql\u详细信息);
$db->exec(“设置名称utf8”);
或者,尝试将其作为参数传递:
$sql\u details=array(
“用户”=>“根用户”,
“通过”=>“ryan”,
“db'=>“edata”,
'主机'=>'本地主机',
“字符集”=>“utf8”
);
但这并不适用于所有PHP版本
PS:为什么将表格字段设置为类型
utf8
,而将表格字符设置为latin1
?如果将所有列添加为“UTF-8”,但问题仍然存在,请尝试此操作
在服务器端文件中添加这些行
mysql_query("SET character_set_client=utf8",$gaSql['link']);
mysql_query("SET character_set_connection=utf8",$gaSql['link']);
mysql_query("SET character_set_results=utf8",$gaSql['link']);
如果已将所有列添加为“UTF-8”,但问题仍然存在,请尝试此操作 在服务器端文件中添加这些行
mysql_query("SET character_set_client=utf8",$gaSql['link']);
mysql_query("SET character_set_connection=utf8",$gaSql['link']);
mysql_query("SET character_set_results=utf8",$gaSql['link']);
注意:sql行是英文和外文混合字符。建议您使用utf8mb4而不是utf8——某些中文字符在utf8中不可用。注意:sql行是英文和外文混合字符。建议您使用utf8mb4而不是utf8——某些中文字符在utf8中不可用。我得到了它可以与$db->exec一起工作;非常感谢。感谢关于表格字段的指针;在某一点上尝试过,但忘记将其更改回来。最好将utf8放在连接中,例如,
newPDO('dblib:host=host;dbname=db;charset=UTF-8',$user,$pwd)
@RickJames,SSP是数据表的特殊脚本,$sql\u details
就是按照您的建议为您这样做的。@PareshGami您把这个命令放在哪里了:$db->exec(“set names utf8”)代码>?@Tiago在数据库连接文件中我让它和$db->exec一起工作;非常感谢。感谢关于表格字段的指针;在某一点上尝试过,但忘记将其更改回来。最好将utf8放在连接中,例如,newPDO('dblib:host=host;dbname=db;charset=UTF-8',$user,$pwd)
@RickJames,SSP是数据表的特殊脚本,$sql\u details
就是按照您的建议为您这样做的。@PareshGami您把这个命令放在哪里了:$db->exec(“set names utf8”)数据库连接文件中的代码>?@Tiago
CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL,
`title` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
`description` text CHARACTER SET utf8
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
-- Dumping data for table `articles`
INSERT INTO `articles` (`id`, `title`, `description`) VALUES
(1, 'శ్రీనివాస్scddadas తామాడా', '新概念英语第asv'),
(2, 'asda', 'asdవా'),
3, 'sdfsadfsdf英语', 'sadf英');
mysql_query("SET character_set_client=utf8",$gaSql['link']);
mysql_query("SET character_set_connection=utf8",$gaSql['link']);
mysql_query("SET character_set_results=utf8",$gaSql['link']);