Tag: 字符编码

如何/无法将乱码/奇怪的文本转换为utf-8 android(java)?

我有一个乱码文本è¼å¥ ,它是从MySql提取的Web服务(php)返回的 现在我正在尝试将其解码为android中的utf-8,但它无法正常工作 我试过了: String s = “è¼å¥”;// text returned by web service taking it as static for testing 1.不工作: String str = new String(s.getBytes(), “utf-8”); 2.不工作: String normalized = Normalizer.normalize(str, Normalizer.Form.NFD); // also tried NFC, NFKC, NFKD // also tested by isNormalized its returning true 3.不工作: String str =URLDecoder.decode(s, “utf-8”); 以上都给出了相同的输出: è¼å¥ 那么,请任何人帮助我理解我做错了什么? 或者请提供任何替代方案? […]

Charset转换Java

嗨,我有一个场景,我需要转换默认的Charset应该被覆盖bu UTF-8。 我在下课时使用。 但我没有得到预期的输出。 因为我使用默认UTF-8作为字符集的unix系统,我在那里比较结果。 我在这个节目的某个地方错了吗? public class CharsetDisplay { public static void main(String[] args) { System.out.println(Charset.defaultCharset().name()); System.out.println(Charset.isSupported(“UTF-8”)); final Charset UTF8_CHARSET = Charset.forName(“UTF-8”); try { byte[] byteArray = new byte[] {34,34,0}; String str = new String(byteArray,UTF8_CHARSET); System.out.println(“String*** “+str); System.out.println(“String to Hex *** “+stringToHex(str)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } […]

使用Eclipse和Maven进行Java编码

我经常看到编码出现问题。 因此,我已经写下了这个指令集来执行所有必需的操作,以使工作(使用编码)。 这个集合与Eclipse有关,但它也将引导maven设置。 在java文件中使用斯堪的纳维亚字母时,编码问题最成问题(åäö,它们在运行时具有实际意义)。 一个示例案例是在java文件中包含一个常量变量,该变量包含一个scandic字母,它用于标识传入流中的值(以UTF-8表示)。 底层操作系统也可能是Windows,默认情况下使用cp1252。 例如以下代码: @Test public void scandicTest() { System.out.println(“scandics: åäö”); } 当一切配置正确时(例如在eclipse中),运行此测试将产生: scandics: åäö 但是如果你通过Maven(从命令行或在eclipse => mvn测试中)运行它,你将拥有: scandics: 首先,需要在eclipse和maven pom.xml中更改编码,以正确读取和存储文件,并在保存文件/运行测试时使eclipse使用正确的编码。 但是,当Maven和生成的java代码处理传入流(编译并运行测试)时,即使读入的文件正确(包含scandic字母),java文件本身的常量值仍然会被破坏。 System Java仍然使用特定于操作系统的默认编码,即使其他所有内容都已正确设置。 因此,您无法在项目中配置所有内容,您也必须为OS-JVM执行此操作。

为什么不将所有.properties文件转换为UTF-8?

我在一个java项目上工作,其中标签被外部化并翻译成.properties文件。 使用ISO-8859-1编码读取java中的资源,因此.properties文件也以ISO-8859-1编码存储。 当前文件搞砸了,有时使用转义\u00E4 ,有时使用实际的字母öäü 。 我也有俄语翻译,看起来像这样: code.adr=\u0430\u0434\u0440\u0435\u0441 这可以使用UTF-8以明文forms存储。 现在的问题是,为什么不使用UTF-8? 为什么Java默认使用ISO-8859-1而不是UTF-8,向后兼容性? 有没有已知的缺点,将所有.properties文件转换为UTF-8?

在通过罗马解析RSS提要时,prolog中不允许获取内容

使用Rome API解析RSS提要我收到此错误: com.sun.syndication.io.ParsingFeedException: Invalid XML at com.sun.syndication.io.WireFeedInput.build(WireFeedInput.java:210) 代码如下: public static void main(String[] args) { URL url; XmlReader reader = null; SyndFeed feed; try { url = new URL(“https://www.democracynow.org/podcast.xml”); reader = new XmlReader(url); feed = new SyndFeedInput().build(reader); for (Iterator i =feed.getEntries().iterator(); i.hasNext();) { SyndEntry entry = i.next(); System.out.println(entry.getPublishedDate()+” Title “+entry.getTitle()); } } catch (Exception e) { […]

Java:为什么“\ uFFFF”在UTF-8中转换为?

为什么”\uFFFF” (显然是2个字节长)在UTF-8中转换为[-17,-65,-65]而不是[-1,-1]? System.out.println(Arrays.toString(“\uFFFF”.getBytes(StandardCharsets.UTF_8))); 这是因为对于大于127的码点,UTF-8在每个字节中仅使用6位吗?

如何在命令行上设置JVM字符集?

设置JVM字符集的命令是什么? (另外,查看当前JVM字符集的命令是什么,所以我知道如何在完成后将其重置为默认值) 谢谢,

如何在Java中为Ant任务参数指定字符编码

我正在用Java编写ANT任务。 在我的build.xml中,我指定了参数,这些参数应该从我的java类中读取。 当我在这些参数中使用特殊字符(如德语变音符号(Ö,Ä,Ü))时会出现问题。 在我的java任务中,它们显示为?-characters(在eclipse中使用System.out.print)。 我的所有文件都编码为UTF-8。 我的build.xml有相应的声明: 有关编写任务的详细信息:我根据http://ant.apache.org/manual/develop.html (特别是Point 5嵌套元素)执行此操作。 我在我的任务中嵌套了元素,如: 和一个java方法: public void addConfiguredParameter(Parameter prop) { System.out.println(prop.getValue()); //prints ???test } 读取参数值。

Java:检测给定字符编码的不可显示字符

我目前正在开发一个应用程序来validation和解析CSV文件。 CSV文件必须以UTF-8编码,尽管有时我们会以错误编码方式获取文件。 CSV文件很可能包含德语字母(Ä,Ö,Ü,ß)的特殊字符,因为CSV文件中的大多数文本都是德语。 对于validation器的一部分,我需要确保该文件是UTF-8编码的。 只要不存在特殊字符,解析时很可能没有问题。 到目前为止我所尝试的是将文件作为字节读取并使用一些库来检测(或猜测)编码。 我尝试了这篇博文的大部分可能性: http : //fredeaker.blogspot.com/2007/01/character-encoding-detection.html 但我尝试的所有库都没有返回正确的编码,因此我无法解析特殊字符。 现在问我的问题:有没有办法确定像UTF-8这样的给定字符编码来检测未正确编码的字符? 所以基本上(Eclipse)控制台中显示的字符作为问号标记。 或者有没有其他方法来正确确定字符编码? 我只需要知道它是否是UTF-8。 提前谢谢大家的帮助! 🙂 最诚挚的问候,罗伯特

JLabel文本乱码

我看到一个涉及JLabel的奇怪问题,用于显示一系列数字。 标签的文本通常类似于0.0 – 100.0 (例如)。 问题是,对于少数几个用户,文本显示为乱码。 在此示例中,文本将显示为/ – /,0 // – / 。 这是我目前所知道的: 它似乎是某种错误的错误,因为显示的每个字符都是预期字符后面的一个Unicode字符。 两个数字之间的短划线字符在应用程序中被硬编码为字符串文字。 它发生在各种版本的Oracle JVM上,包括1.6.x和1.7.x. 它发生在几台精选的Windows 7机器上。 什么可能导致这类问题? 我还应该调查什么? 谢谢。