在javascript中显示特殊字符
Display special characters in javascript
我正在使用Google Places API为我的应用程序提供城市,国家等的下拉菜单列表。我对包含以下代码的文件使用AJAX请求:
$results = file_get_contents("https://maps.googleapis.com/maps/api/place/autocomplete/json?types=(regions)&language=EN&offset=4&key=" . $key . "&input=" . $input);
$decode = json_decode($results, true);
foreach($decode["predictions"] as $value){
$json_array[] = $value["description"];
}
echo json_encode($json_array);
在这方面似乎一切正常,但是当JSON返回给AJAX应用程序时,一些字符出现错误。例如,当我试图显示结果时,"s
我已经尝试用"utf8_encode()"编码每个字符串之前,我把它添加到"$json_array"(在PHP文件中,当然),但这似乎只会使事情复杂化-似乎结果是双重编码的东西,当它最终显示在javascript中。
另外,我应该注意到网页在meta标签中有UTF-8字符集。
作为后续:
我创建了一个简单的HTML页面,在其中我在一个div中显示了"ã",它确实正确地显示了出来。我还使用jQuery在页面加载时在另一个div中显示相同的字符,这也正确显示。我甚至不需要在那个页面上设置编码。所以我只能假设,因为这个测试页面是普通的HTML,问题来自我的PHP设置。
我在另一个PHP测试页面的头部添加了以下内容:
mb_internal_encoding("UTF-8");
mb_http_output("UTF-8");
mb_http_input("UTF-8");
mb_language("uni");
mb_regex_encoding("UTF-8");
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=UTF-8");
,但我仍然看到字符不正确显示。所以到目前为止,我已经添加了上述内容,将php.ini中的default_encoding更新为UTF-8,并检查meta标记是否指定UTF-8。现在我真的开始生气了!
使用其中一个header:
header('Content-type: application/json');
header('Content-Type: text/html; charset=UTF-8);
如果不懂阿拉伯语,可以帮我。
可能是网页无法识别该字符。要解决这个问题,请为该字符使用HTML代码。
例如,ã
的HTML代码为ã
。
你可以在这里找到更多的信息。
检查PHP字符串中的特殊字符并转换它们。
$mystring = 'São Paulo';
$findme = 'ã';
$pos = strpos($mystring, $findme);
if ($pos != false) $findme = "ã";
这是最愚蠢的事情…但我学到了很多关于字符编码的知识。事实证明(我没有提到这一点,因为它似乎不相关)Bootstrap中的Helvetica字体无法显示这些特殊字符。是的,wtf ?我把所有可能的编码选项都设置为"UTF-8",一直以来都只是愚蠢的CSS字体选择。所以最后我把字体改成了"Arial",问题立刻就解决了。
感谢大家的参与。
- 如何不显示/过滤特殊字符?(CSS或Javascript)
- 如何使用javascript在输入元素中显示特殊字符
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- 在粘贴到文本字段Jquery时检查并突出显示不支持的特殊字符
- 在确认框中显示特殊字符
- 显示从AJAX调用中提取的特殊字符时出现问题
- 角度.js - 将带有特殊字符和数字的字符串转换为数组并使用 ng-repeat 显示
- 在页面中显示特殊字符
- HTML 特殊符号显示为字符
- 如何在输入元素文本字段中显示特殊字符,但仍保留JQuery中的值
- 在呈现的HTML中显示特殊字符、HTML实体和unicode
- 条形图中的提示不显示HTML特殊字符中包含的文本,例如.
- 如何用特殊字符显示来自资源的消息
- Markitup总是在从db读取后显示html特殊字符
- JS特殊字符没有显示
- 显示存储在JavaScript字符串中的HTML特殊字符
- Angular translate:占位符不能正确显示特殊字符
- 引导工具提示不显示带有特殊字符的文本
- 特殊字符显示在Python Dict构建的表单AWS中,并通过django视图传递给js
- 表单上的编码问题;一些特殊字符显示为 ASCII 代码