Java 将URLDecover.decode(temp,“UTF-8”转换为php
我正在将Java Servlet web应用程序转换为php 如何将以下Java命令转换为phpJava 将URLDecover.decode(temp,“UTF-8”转换为php,java,php,servlets,urldecode,Java,Php,Servlets,Urldecode,我正在将Java Servlet web应用程序转换为php 如何将以下Java命令转换为php String temp = request.getParameter("q"); String temp2 = URLDecoder.decode(temp, "UTF-8"); 任何帮助都将不胜感激 编辑: 这是客户端代码: var myJSONText = playlist.serialize(); $.ajax({ type : 'POST', url :
String temp = request.getParameter("q");
String temp2 = URLDecoder.decode(temp, "UTF-8");
任何帮助都将不胜感激
编辑:
这是客户端代码:
var myJSONText = playlist.serialize();
$.ajax({
type : 'POST',
url : "playlisthandler.php",
data : {
"q" : encodeURIComponent(myJSONText)
},
success : function(response) { ... },
error : function(response) { ... },
dataType : "json"
});
你是说Encodeuri组件是冗余的吗?试试这个
$paramValue = urldecode($_GET['q']);
你不应该这样做。servlet API中的
request.getParameter()
和PHP中的$\u request
(以及固有的$\u GET
和$\u POST
)已经基于请求字符编码来执行该操作。这样做的需要表明客户端通过对查询字符串组件进行双重编码是错误的
根据您的代码,您确实在显式地编码查询字符串,而jQuery已经在幕后进行了编码:
data : { "q" : encodeURIComponent(myJSONText) },
删除
encodeURIComponent()
调用,使数据成为{“q”:myJSONText}
。jQuery已经注意到它将被URL编码。encodeURIComponent()
只有在使用普通的XMLHttpRequest
时才需要urldecker.decode(temp,“UTF-8”)的php等价物已经在php$\u GET
数组()上调用了code>,这是一个相当奇怪的问题。servletrequest.getParameter()
默认情况下已经根据请求字符编码对其进行解码。这样做的需要表明客户端实际上是对查询字符串进行了双重编码,这反过来意味着需要在客户端解决问题,以便只对其编码一次。顺便说一句,PHP也是如此,如果客户机正确编码了请求参数,那么以后就不需要在服务器上再次手动解码它了。这是客户机代码:var myJSONText=playlist.serialize();$。ajax({type:'POST',url:'playlayhandler.php',数据:{“q”:encodeURIComponent(myJSONText)},成功:函数(响应){…},错误:函数(响应){…},数据类型:“json”});你是说encodeURIComponent是冗余的吗?jQuery已经做到了,是的。