【发布时间】:2014-04-10 00:37:35
【问题描述】:
关于问题的简要说明:
我有一个文件“лл.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") );
但它对我不起作用
【问题讨论】:
-
看来
%D0%BB%D0%BB是转义码,所以不是编码问题,而是取消转义。 -
而且它看起来像它的 Unicode,而不是 UTF-8。
-
你好,那我该如何避免它呢?
-
对不起,我认为 unicode == utf-8。我会改标题
-
不,我看到它确实是 UTF-8。转义 UTF-8。
标签: java android utf-8 url-encoding