java - Java 中的 UTF-8 转换

标签 java android utf-8 url-encoding

问题简介:

我有一个文件“лл.txt”。当我将它的名称读入字符串时,它变成“%D0%BB%D0%BB.txt”。然后,如果我想打开并读取该文件,它找不到它

// filename contains "%D0%BB%D0%BB.txt"
in = new BufferedReader(new FileReader(new File(filename))); // File not found

但如果我给出原来的名字,它就完美了

in = new BufferedReader(new FileReader(new File("лл.txt"))); // ok

所以问题是如何从“%D0%BB%D0%BB.txt”中获取“лл.txt”? 快速搜索让我找到了这个

byte[] bytes = str.getBytes( Charset.forName("UTF-8" ));
str = new String( bytes, Charset.forName("UTF-8") );

但这对我不起作用

最佳答案

它看起来是使用 utf-8 字符集编码的 URL。您可以从以下示例转换中得到提示:

System.out.println(URLEncoder.encode("лл.txt", "utf-8")); // Gives %D0%BB%D0%BB.txt
System.out.println(URLDecoder.decode("%D0%BB%D0%BB.txt", "utf-8")); // Gives лл.txt

关于java - Java 中的 UTF-8 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976535/

相关文章:

java - 应用程序中的 Android 运行时错误

java - 模拟回调

java - 优化和重新设计现有应用程序

android - 在设备上打印 View 层次结构

utf-8 - 在 bash 中将转义字符转换为 UTF-8

mysql - 为什么MySQL触发器变量不能处理特殊字符?

java tomcat utf-8编码问题

java - 如何在详细信息 View 中启动 JFileChooser?

java - 将 REST 查询参数存储为静态字段

android - android RecyclerView中上拉刷新