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

PHP json_encode json_decode UTF-8

壤驷华美
2023-03-14
问题内容

如何将带有国际字符的json编码的字符串保存到数据库,然后在浏览器中解析解码的字符串?

<?php           
    $string = "très agréable";  
    // to the database 
    $j_encoded = json_encode(utf8_encode($string)); 
    // get from Database 
    $j_decoded = json_decode($j_encoded); 
?>    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <?= $j_decoded ?>
</html>

问题答案:

这是一个编码问题。看起来在某些时候,数据被表示为ISO-8859-1。

流程的每个部分都需要UTF-8编码。

  • 数据库连接

  • 数据库表

  • 您的PHP文件(如果您在文件中使用特殊字符,如上面的示例所示)

  • content-type您输出的标题



 类似资料:
  • 问题内容: 我正在创建一个简单的登录页面,我想将登录名和密码参数作为UTF-8编码的字符串传递。正如您在下面的代码中看到的那样,第一行是我将编码设置为UTF-8的位置,但这似乎毫无意义,因为它不起作用。当我在重音符号中使用登录名和密码参数时,结果页面会收到奇怪的字符。 如何以一种适用于所有浏览器的方式正确设置字符编码? 问题答案: 在只设置响应的字符编码和所述HTTP的属性标题中。基本上,它告诉服

  • 问题内容: 我有以下情况:有一个对象列表-ProductData,其中包含几个字段: 还有API,它返回以下对象的列表: 但它会返回带有空计划名称字段的对象,因为在提取此对象期间不允许使用该名称。我需要通过外部参照将产品数据与RatingTableRow链接,以便将计划名称设置为RatingTableRow,因为稍后需要使用此对象,因此我创建了以下代码来做到这一点: 我知道Java文档说这不满足这

  • 问题内容: 我使用Jersey 1.11做了一个小型Rest Web服务。当我调用返回Json的url时,非英文字符的字符编码存在问题。Xml的相应网址(“ test.xml”在开始的xml-tag中使其成为utf-8。 如何使网址“ test.json”返回utf-8编码的响应? 这是该服务的代码: 这是服务使用的pojo: 问题答案: Jersey在默认情况下应始终生成utf-8,听起来像是您

  • 问题内容: 在上一个问题中如何在Java 8中动态进行过滤?StuartMarks给出了一个很好的答案,并提供了一些有用的实用程序来处理从流中选择topN和topPercent。 我将从他的原始答案中将它们包括在这里: 我的问题是: [1]如何从具有一定数量项目的流中获取3到7的顶级项目,因此,如果流中有A1,A2 .... A10中的项目,则调用 将返回{A3,A4,A5,A6,A7} 我能想到

  • 问题内容: 我正在学习Java 8 lambda表达式,我想问一下以下与我遇到的函数接口中的方法有关的Java代码。 在IDE上执行程序时,它不输出。我期望它会给。 问题答案: 我假设您正在Java 9下运行它?您没有更改流的属性,因此不需要执行任何一个或全部执行。 换句话说,您关心的只是最终结果,但与此同时,您不以 任何 方式(例如通过或)更改的初始大小。这是在Streams中完成的优化。 顺便

  • 问题内容: 我有以下情况 我已经合并所有列表从从对象地图。 知道如何使用Java 8流API吗? 问题答案: 我想这就是您要寻找的。 例如:

  • 问题内容: 我对Java 8 中的 API 和一点都不感到困惑。 我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素? 那么,为什么要用两种方法完成同一任务?我想念什么吗? 问题答案: 我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素? 这不是真的。根据javadoc : 返回描述流中 某些 元素的描述; 如果流为空,则返回空。此操作的

  • 问题内容: 我刚在生产环境中遇到了不愉快的经历, 我将问题追溯到我在函数中的使用。 为了验证它实际上是否比通过声明的构造函数()进行的正常创建更糟糕,我编写了以下小型方法: 在索引达到30k后立即运行方法将导致方法失败。使用该程序不会失败,但是会不断努力直到被杀死(索引很容易达到150万)。 为什么在堆上创建那么多元素以至于导致如此之快? (顺便说一句,当集合类型为时也会发生。) 问题答案: 在第