我想从Windows的属性文件中显示字符(中文或其他语言)。java将字符串转换为UTF
假设我从服务器启动时设置的System属性读取属性server.location =上海的位置。
我试图做到这一点
new String(locationStr.getBytes(System.getProperty("file.encoding")), "UTF-8");
这适用于Linux的,但不能让它在Windows上运行。
以下是总结snipet,没有的系统属性是如何设置的
URL fileURL = new URL("file:filePathAndName");
InputStream iStream = fileURL.openStream() ;
Properties prop = new Properties();
prop.load(iStream);
//Enumerate over prop and set System.setProperty (key, value);
阅读财产System.getProperty
这是所有属性文件集中完成(“server.location”)语法,因此在读取或设置特定编码时修改任何内容都可能影响其他内容,因此不可取。
还尝试编码使用URLEncoder.encode
但没有帮助。 我没有看到任何特定的编码集。 Java使用UTF-16,在Windows上,编码是'Cp1252'。我在这里错过了什么?
任何帮助,使这项工作或抛出一些光,表示赞赏。也试图通过现有的问题,但答案并不直接适用于创建新问题。 谢谢
编辑: 无法将获得的字符串转换为UTF-8。不知怎的,相信人们阅读方式乔普提到的性质和检索字符串正确
属性文件应该在ISO_8859_1中进行编码。你的文件实际上包含什么? –
属性文件中的“UTF-8”听起来令人困惑? – Priyamal
嗨JB,不知道你的意思是“文件应该在ISO-8859-1编码”我在Windows中发现默认编码是Cp1252。属性文件由多个属性组成,每行一个。例如server.name = someName server.type = someType server.location = someLocation etc –
Nilesh