当前位置: 首页 > 面试题库 >

php json_encode中的德国变音符的问题

宦高岑
2023-03-14
问题内容

我从包含德国变音符号的数据库中获取数据时遇到麻烦。基本上,每当我收到包含变音符号的数据时,它都是带有问号的黑色正方形。我通过把

mysql_query ('SET NAMES utf8')

查询之前。

问题是,一旦我json_encode(...)对查询结果使用,则包含umlaut的值会得到null。我可以通过直接在浏览器中调用php文件来看到这一点。除了在编码为JSON并将其解码为JS之前替换此字符之外,还有其他解决方案吗?


问题答案:

您可能只想以某种方式在浏览器中显示文本,因此一种选择是使用来将变音符号更改为HTML实体htmlentities()

以下测试对我有用:

<?php
    $test = array( 'bla' => 'äöü' );
    $test['bla'] = htmlentities( $test['bla'] );

    echo json_encode( $test );
?>


 类似资料:
  • 问题内容: 打印月份[2]失败 帮助摆脱这一点! 问题答案: 您是否在源文件的开头添加了编码?

  • 问题内容: 如何从字符串中删除重音符号?尤其是在IE6中,我有类似以下内容: 但是IE6困扰着我,似乎不喜欢我的正则表达式。 问题答案: 使用ES2015 / ES6 String.Prototype.Normalize(), 这里发生两件事: 根据Unicode规范形式,将组合的字形分解为简单的字形。在中端起来表示为+ 。 现在,使用正则表达式字符类来匹配U + 0300→U + 036F范围,

  • 问题内容: 如何从字符串中删除变音符号? 例如,转换适用于所有语言的所有á-> a,č-> c等。 我正在进行全文搜索,因此需要忽略搜索文字的任何变音符号。 谢谢 问题答案: 使用9级以上的API,您可以使用Normalizer类,例如 (Keysers链接的答案看起来更好,它可以清除更多废话) 这将返回。

  • 我正在尝试从最多500个字符的TextArea中获取值。但我面临一个问题,字符与变音符,其中每个特殊字符替换为4个字符。因此,如果我给出包含法语字符的500个字符的文本,在数据库中持久化所需的实际长度(字段长度为500)将超过500个字符,事务将失败。 一些例子: oubliée被转换为oubli:afetraye©E Désiriez被转换为D:FARTH©Siriez 使用的应用程序服务器:W

  • 我已经研究了堆栈溢出(替换字符...呃,JavaScript如何不遵循有关RegExp的Unicode标准等等),但还没有找到这个问题的具体答案: 目前,我正在讨论三种添加支持的方法中的一种,所有这些方法我都进行了测试和工作(至少在某种程度上,我不知道第二种方法的“范围”是什么)。它们在这里: 这将使姓/名与中支持的任何重音字符正确匹配。 这与任何东西都是匹配的,至少以的形式是这样的。好吧,我想.

  • 问题内容: 可能吗?这是我的输入字符串: 这是我想要的输出: 问题答案: Wordpress使用了一个功能,效果很好。这是带有输出的工作代码。