gpt4 book ai didi

PHP 代码返回特殊德语字符的 HTML 实体

转载 作者:行者123 更新时间:2023-11-30 23:24:17 25 4
gpt4 key购买 nike

我无法让我的 PHP 5.3 代码准确返回我的 MySQL (5.5) 数据库中的内容。

我正在使用 jquery-ui-autocomplete(1.9.2,但在 1.8.x 中也是如此)来检索城市名称。例如,一个城市是“Heßheim”,但 PHP 返回“Heßheim”。数据库/表排序规则是 Latin1_general_ci,但将其更改为 utf8_general_ci 并没有帮助。我的 PHP 代码:

$term = trim(strip_tags($_GET['term']));
//retrieve the search term that autocomplete sends

if (!is_numeric($term)) {
$qstring = "SELECT DISTINCT city FROM table WHERE city LIKE '" . $term . "%' ORDER BY city ASC";
$result = mysql_query($qstring);
//query the database for entries containing the term

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { //loop through the retrieved values
//$row['id'] = (int)$row['id'];
$row['city'] = htmlentities(strip_tags($row['city']));
$row_set[] = htmlspecialchars_decode($row['city']);
//build an array
}
}

header('Content-Type: text/html; charset=utf-8');
echo json_encode($row_set);

我已经尝试了所有我能想到的解码 HTML 实体的方法,但即使是上面的方法也没有做到。此外,$row['city'] = htmlentities(strip_tags($row['city'])); 必须存在,否则它不会为 Heßheim 返回任何内容。

测试脚本会返回此网页 - ["Heddesheim","Heidelberg","Heßheim"] - 页面源代码如下 - ["Heddesheim","Heidelberg","Heß海姆"]。当然 jquery-ui-autocomplete 将其列为 Heßheim。

最佳答案

您应该使用 html_entity_decode() 而不是 htmlspecialchars_decodePHPMAN

另外,如果你只是编码它,为什么还要解码它?浏览器会在渲染页面的同时解码实体,所以我想你只需要

$row['city'] = htmlentities(strip_tags($row['city']));  
$row_set[] = $row['city'];

关于PHP 代码返回特殊德语字符的 HTML 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14073009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com