提问人:Etr 提问时间:6/17/2023 更新时间:6/17/2023 访问量:25
Mysql SELECT两个mysql服务器之间的编码不同[重复]
Mysql SELECT not same encoding between two mysql server [duplicate]
问:
我的主机上有本地环境开发 (WAMP) 和生产环境。
出于测试目的,我从主机导出我的数据库并导入到我的本地 WAMP 环境。
我有一个从我的数据库中获取文本并生成 json 文件以供显示的人。
为了显示口音,我必须在 WAMP 环境中使用utf8_decode,而不是在我的主机环境中使用。我检查了有关编码和配置的所有内容,即使我从计算机(开发和生产)重新导入相同的SQL文件,问题仍然存在。
参数 | 开发 | 刺 |
---|---|---|
PHPMYADMIN 版本 | 5.2.0 | 5.2.1 |
导出 SQL 文件编码 | 那 | UFT-8型 |
导出 SQL 参数 | (从 PROD 导入) | 数据和结构与删除 |
导入 SQL 文件编码 | UFT-8型 | 那 |
数据库间类化 | latin1_swedish_ci | latin1_swedish_ci |
结构字段排序规则 | latin1_swedish_ci | latin1_swedish_ci |
MYSQL版本 | 8.0.31 | ??? |
PHP版本 | 8.0.26 | 8.0.28 |
PHP COINFIG default_charset | UTF-8 / UTF-8 | UTF-8 / UTF-8 |
WEB服务器 | 阿帕奇/2.4.54 | Apache ??? |
因此,如果我不在我的函数中使用utf8_decode:
"content": "'.(str_replace($badchar, '',str_replace(array("\r\n","\r","\n"),'<br/>', $data['avis']))).'"
dev: “Région riche en découvertes.” prod: “Région riche en découvertes.”
如果我在我的函数中使用utf8_decode:
“内容”: “'.utf8_decode(str_replace($badchar, '',str_replace(array(”\r\n“,”\r“,”\n“),'
'
dev: “Région riche en découvertes.” prod: “R gion riche en d couvertes.”
我不明白问题来自哪里,apache,mysql,php?
该函数mb_detect_encoding将 UTF-8 两面都返回给我。
功能齐全:
function refresh_json_avis($BDD)
{
$badchar=array(
// control characters
chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8), chr(9), chr(10),
chr(11), chr(12), chr(13), chr(14), chr(15), chr(16), chr(17), chr(18), chr(19), chr(20),
chr(21), chr(22), chr(23), chr(24), chr(25), chr(26), chr(27), chr(28), chr(29), chr(30),
chr(31),
// non-printing characters
chr(127)
);
$SiteDataClass = new SiteDataClass($_SERVER['DOCUMENT_ROOT']."/json/config.json");
$req =$BDD->prepare('select avis, nom, date, appartement FROM reservations WHERE etat>=6 AND avis!="" ORDER BY date DESC, id DESC');
$req->execute();
$file='[';
while($data = $req->fetch())
{
$array_date=explode('-',$data['date']);
$file.='{"title": "'.$SiteDataClass->get_flat_name($data['appartement']).', '.$array_date[2].'/'.$array_date[1].'/'.$array_date[0].'","content": "'.utf8_decode(str_replace($badchar, '',str_replace(array("\r\n","\r","\n"),'<br/>', $data['avis']))).'","sign": "'.strtoupper(substr($data['avis'], 0, 1)).'."},';
}
$req->closecursor();
$file = rtrim($file);
$file = rtrim($file, ",");
$file.= "]";
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/json/avis.json', $file);
return('[{"type":"message","content":"'.mb_detect_encoding($file).'","param":"success"}]'); //debug
return('[{"type":"message","content":"Mis à jour, cela peut mettre plusieurs minutes à apparaitre","param":"success"}]');
}
答: 暂无答案
评论
utf8_decode
utf8_encode
Région
R�gion