使用 ajaxed 无限滚动时,我无法解码希腊文本。这是我第一次处理非英语数据,但据我了解,每个希腊字符都需要转义,否则 Ajax 会中断尝试发送字符。
我通过使用这个 (PHP) 转义它使其对 Ajax 友好:
function utf8ize($d) { // Encoding workaround
if(is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} elseif (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
所以这
Το γράμμα άλφα (ἄλφα) είναι το πρώτο γράμμα του ελληνικού αλφαβήτου。
变成这样:
Το γÏÏάμμα άλφα (ἄλφα) είναι το Ï€Ïώτο γÏάμÎα τοÏÏ ... ÎµÎ»Î»Î·Î½Î¹ÎºÎ¿Ï Î±Î»Ï†Î±Î²Î®Ï„Î¿Ï...。
这就是文本在我的英国语言环境数据库中的原始外观。但现在我不确定如何在前端将其转换回希腊语。
通常我会在后端使用 PHP 的 utf8_encode 并在前端使用 jQuery 的 decodeURIComponent 成功解码非基本拉丁词,如café、fiancé、façade,但是使用希腊语会出现此错误
URIError:URI 格式错误
是否有内置的 jQuery 函数将 utf-8 转换为另一种在前端支持希腊语的格式?
这是它在默认加载时的样子:
这就是我尝试通过 Ajax 注入相同文本时发生的情况