- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常基本的测试,但它失败了,我不明白为什么。
这是我的代码
System.out.println(URLEncoder.encode("去", "UTF-8")); // result = "%E5%8E%BB"
System.out.println(URLDecoder.decode("%E5%8E%BB", "UTF-8")); result = ?
为什么第二个 system.out 结果是 ?我期待再次见到去。
为了添加到更大的图片中,我将在 javascript 中使用encodeURIComponent() 将我的数据发布到我想在其中使用 URLDecoder.decode 的 servlet,但我什至无法让上面的示例工作。我缺少什么?
更新:刚刚注意到一些奇怪的事情,当我在 servlet 中运行代码时,我得到了我描述的结果,但如果我只是在 main 方法中运行它,它就可以工作。这是我的 servlet 代码
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SaveFile extends BasicServiceServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//request.setCharacterEncoding("UTF-8");
//response.setContentType("text/html; charset=UTF-8");
String DIR = getBaseUrl();
String project = request.getParameter("project");
String foldername = request.getParameter("foldername");
String filename = request.getParameter("filename");
String fileContent = (String)request.getParameter("content");
String ch = (String)request.getParameter("char"); //char = 去
String pathToFile = DIR + project + "/" + foldername + "/" + filename;
System.out.println(URLEncoder.encode("去", "UTF-8")); //reults in %E5%8E%BB
System.out.println(URLDecoder.decode(ch, "UTF-8")); // results in ?
System.out.println(URLDecoder.decode("%E5%8E%BB", "UTF-8")); //results in ?
System.out.println("去".equals(URLDecoder.decode("%E5%8E%BB", "UTF-8"))); //this results in true
try {
//writing it to file results in ?
BufferedWriter out = new BufferedWriter(new FileWriter(pathToFile));
out.write(URLDecoder.decode(fileContent, "UTF-8"));
out.close();
System.out.println("STAT - SaveFile " + filename);
}catch(IOException e){
System.out.println("STAT - SaveFile Error");
}
}
}
但是运行一个简单的 main 方法对我来说很有效
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println(URLEncoder.encode("去", "UTF-8"));
System.out.println(URLDecoder.decode("%E5%8E%BB", "UTF-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最佳答案
这只是您的控制台的显示问题。编码/解码工作正常,正如您使用以下代码所看到的:
System.out.println("去".equals(URLDecoder.decode("%E5%8E%BB", "UTF-8"))); //displays "true"
--编辑--
您的servlet代码不起作用可能是因为您在构造编写器时没有指定字符编码,因此它使用默认编码。请改用以下内容:
new OutputStreamWriter(new FileOutputStream(pathToFile), "UTF-8");
关于Java URLDecoder 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21900463/
有什么区别 URLDecoder.decode(String s) 和 URLDecoder.decode(String s, String enc) 我有一个 cookie 值,例如 val=%22
我需要允许用户输入各种特殊字符,所以我使用 java URLDeacoder.decode() 方法,我使用 println 进行了测试。除了这个百分比符号,其他特殊字符没有问题,执行时出错。这是为什
根据RFC 2396 , The plus "+", dollar "$", and comma "," characters have been added to those in the "res
我有一个非常基本的测试,但它失败了,我不明白为什么。 这是我的代码 System.out.println(URLEncoder.encode("去", "UTF-8")); // result = "
我有一个关于 .htaccess 和 QUERY_STRING 的问题。 我尝试使用我的 htaccess 重定向一个 URL,如下所示: http://mydomain.tld/out/http%3
我正在使用 Fiddler 来调试一些特别痛苦的 AJAX 代码,并且在发送到服务器的 POST 请求中,请求正文是 UrlEncoded 的。这导致我必须将文本剪切并粘贴到在线应用程序中,以将文本
当 .net 在您请求时已经解码查询字符串时,HttpUtility.UrlDecode 有什么意义。 这是经典 ASP 的后遗症还是我遗漏了什么? 最佳答案 如果您从其他来源收到 UrlEncode
我使用urldecode从以前的网站接收成员(member)ID。 URL 中显示了正确的 ID,但我无法从数据库中获取信息。 成员.php: query($query)){ die('
我遇到了一个特殊的问题。我的 servlet 收到一个 urlencoded 字符串,从日志中我可以看出这个字符串是正确的。 我试过这个字符串: "test+%F0%9F%98%8E+1+%E2%99
我正在尝试解决字符编码问题。我意识到这确实不是解决问题的好方法,但目前我只是想把它包扎起来,当字符编码出现在新的待办事项列表中时,我会提出一个合适的解决方案。 无论如何,目前我已经通过在操作中执行此操
我有一个 TinyMCE 编辑器 - 其内容需要通过 AJAX 上传。 显然,由于 AJAX 发送参数,因此需要通过 JavaScript escape() 函数对它们进行转义,这样就不会破坏 AJA
我正在使用 PayPal 支付系统,我想在自定义字段中发送 2 个值。因此我使用了 urlencode(json_encode()) 功能。没有 urlencoding 的示例。 $customDat
我对 Java 的 URLDecoder 有疑问。我正在用 JavaScript 转义一个字符串,并将它发送到一个 java servlet。然后我使用以下行解码转义的字符串: URLDecoder.
我正在编写一个 lucene 服务器。我想收到这样的帖子查询: http://www.site.com/search?+title:google +type:website 但是帖子参数 "+titl
我将英镑符号 £ 传递给一个 PHP 页面,该页面已被 ASP URL 编码为 %C2%A3。 问题: urldecode("%C2%A3") // £ ord(urldecode("%C2%A3")
Django 模板文件中的 urldecode 有什么办法吗? 就在urlencode对面或 escape 我想将 app%20llc 转换为 app llc 最佳答案 你必须写这样的东西而不是以前的
我如何转换 www.bestbuy.com/site/Electronics\Audio\abcat0200000.c=3fid=3dabcat0200000 转换成原始格式? www.bestbuy
这应该是一件容易的事。 假设我在 R 中有这个字符串: a Encoding(a) <- "UTF-8" 或者使用 iconv 函数: http://stat.ethz.ch/R-manual/R-
我的一项测试中有以下代码。第二个断言失败。 String decode1 = URLDecoder.decode("a%20b", "UTF-8"); assertTrue("a b".equals(
我不知道,为什么我们要使用 Server.UrlEncode() & Server.UrlDecode()?!在 QueryString 中我们看到 URL 中的任何内容,那么为什么我们要对它们进行编
我是一名优秀的程序员,十分优秀!