Tag: unicode

将unicode参数传递给Java命令行

使用JDK 1.8和OSX。 对于args ,其中一个是unicode(中文,日文等)字符。 想知道如何通过它们? 我在SO上搜索了一些解决方案,但没有工作。 我试过了, 执行java命令运行类文件时,添加-Dfile.encoding=UTF-8 ; 通过引用“和”引用来传递unicode参数。 在我的代码中,我尝试在args.length的开头打印args.length ,它始终打印为零。 问候,林

在Java中将中文字符串转换为Unicode

假设中文Charater中有一个字符串“你好”,将字符串转换为Unicode的正确结果是“\ u4f60 \ u597d”,我从下面的代码得到的结果是“\ ufffd \ ufffd \ ufffd”。 为什么??? Java代码: String str = “你好”; public String testEncoding(String str) { String result = “”; for(char ch : str.toCharArray()) result += “\\u” + Integer.toHexString(ch | 0x10000).substring(1); System.out.print(result); return result; } String text = testEncoding(“你好”); public static void input(String text){ execShellCmd(String.format(“am broadcast -a ADB_INPUT_TEXT –es msg \’%s\'”, […]

为什么Integer.parseInt(“\ uD835 \ uDFE8”)失败?

我的印象是java支持unicode字符。 我做了这个测试,遗憾地发现它失败了。 问题是为什么? 它是一个bug还是某个文件? // MATHEMATICAL SANS-SERIF “𝟨” String unicodeNum6 = “\uD835\uDFE8”; int codePoint6 = unicodeNum6.codePointAt(0); int val6 = Character.getNumericValue(codePoint6); System.out.println(“unicodeNum6 = “+ unicodeNum6 + “, codePoint6 = “+ codePoint6+ “, val6 = “+val6); int unicodeNum6Int = Integer.parseInt(unicodeNum6); 这Exception in thread “main” java.lang.NumberFormatException: For input string: “𝟨”出现Exception in thread “main” java.lang.NumberFormatException: For input string: “𝟨” […]

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位吗?

如何在servlet中处理编码的unicode文本?

我正在从外部源访问我的servlet URL。 其中一个参数是印地文文本。 外部源正在编码它。 编码值是。 %E0%A4%AA%E0%A4%BE%E0%A4%A0%E0%A5%8D%E0%A4%AF%20%E0%A4%AD%E0%A4%BE%E0%A4%97 我可以通过wireshark在TCP转储中看到它。 但我没有在servlet应用程序中获取此编码字符串。 我试图通过getParameter()方法得到它。 它返回一些随机字符。 因为我没有得到正确的值,所以如果我尝试使用我的servlet类解码它 URLDecoder.decode(myString, “UTF-8”); 然后它返回一些随机字符,像这样 – विषय वसॠतॠ请建议我如何在servlet中读取此编码文本并解码回原始值。

字符串中的换行符未写入文件

我正在尝试编写一个程序来处理从文件中读入的unicode字符串。 我想到了两种方法 – 一种是我读取包含换行符的整个文件,执行几次正则表达式替换,然后将其写回另一个文件; 另一个我在文件中逐行读取并匹配各行并替换它们并将其写出来的地方。 我无法测试第一种方法,因为字符串中的换行符不会写为文件的换行符。 以下是一些示例代码: String output = “Hello\nthere!”; BufferedWriter oFile = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(“test.txt”), “UTF-16”)); System.out.println(output); oFile.write(output); oFile.close(); print语句输出 你好 那里! 但文件内容是 你好! 为什么我的换行不写入文件?

Java读取带有补充unicode字符的字符流

我在使用Java读取补充unicode字符时遇到了麻烦。 我有一个文件可能包含补充集中的字符(任何大于\ uFFFF)。 当我设置我的InputStreamReader以使用UTF-8读取文件时,我希望read()方法为每个补充字符返回一个字符,而不是它似乎在16位阈值上分割。 我看到了一些关于基本unicode字符流的其他问题,但似乎没有什么能处理大于16位的情况。 这是一些简化的示例代码: InputStreamReader input = new InputStreamReader(file, “UTF8”); int nextChar = input.read(); while(nextChar != -1) { … nextChar = input.read(); } 有没有人知道我需要做什么来正确读取包含补充字符的UTF-8编码文件?

使用XSLT转换XML并保留Unicode字符

我的XSLT转换已成功几个月,直到我遇到带有Unicode字符的XML文件(很可能是表情符号)。 我需要保留Unicode,但XSLT将其转换为HTML实体。 我认为将编码设置为UTF-8可以解决我的问题,但我仍然遇到问题。 任何帮助赞赏。 码: private byte[] transform(InputStream stream) throws Exception{ System.setProperty(“javax.xml.transform.TransformerFactory”, “org.apache.xalan.processor.TransformerFactoryImpl”); Transformer xmlTransformer; xmlTransformer = (TransformerImpl) TransformerFactory.newInstance().newTransformer(new StreamSource(createXsltStylesheet())); xmlTransformer.setOutputProperty(OutputKeys.ENCODING, “UTF-8″); XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(stream,”UTF-8”); Source staxSource = new StAXSource(reader, true); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Writer writer = new OutputStreamWriter(outputStream, “UTF-8”); xmlTransformer.transform(staxSource, new StreamResult(writer)); return outputStream.toByteArray(); } 如果我加 xmlTransformer.setOutputProperty(OutputKeys.METHOD, “text”); 保留Unicode但不保留XML。

使用Unicode(Java)访问/更改JEditorPane的html加载元素+ HTMLEditorKit问题

这将是一个很长的问题,所以忍受我:) 我的应用程序 我正在开发一个Java(带有JFrame GUI)桌面应用程序,它执行以下操作: 扫描(.txt)文件。 从这些文件中解析一些数字,对它们执行一些计算,最后将结果存储在String变量中。 以特殊(表格)格式输出这些数字。 (注意:格式包括一些Unicode(阿拉伯语)字符。) 问题 前两部分进展顺利。 但是,当我来到第3部分(格式化输出)时,我不知道如何显示这种特殊格式,所以, 在Java中显示特殊格式化输出(表)的最佳方法是什么? 注意: Formatter 不会提供帮助,因为它没有对表的适当支持。 解决方案一: 我做了我的研究,发现我可以使用JEditorPane,因为它可以显示特殊格式,如“html”。 所以我决定用所需的(表格)格式创建一个“html”页面,然后在[JEditorPane] [4]上显示这个页面。 我这样做了,它顺利进行,直到我想将一些html元素的值更改为那些(.txt)文件中的解析数字。 如何访问html元素(例如 )并更改其值? 请注意,使用setPage(url)在JEditorPane中加载(.html setPage(url) 。 Unicode字符显示正常,但我无法更改某些元素值(例如,我想将 000,000,000 的值更改为 MainController.getCurrentTotalPayment() 解决方案二: 我找到了一个解决方法,涉及使用HTMLDocument和HTMLEditorKit,这样我就可以从头开始使用HTMLEditorKit创建(.html)并使用kit.insertHTML在JEditorPane上显示它。 我已经使用上面的方法成功添加了内容,并且我还能够从(.txt)文件中添加解析后的数字,因为我将它们存储在my(MainController)类中。 不幸的是,Unicode阿拉伯字符未正确显示。 如何正确显示这些Unicode字符? 所以第一个解决方案缺乏对html元素的访问权限,第二个解决方案缺乏Unicode支持! 我的同事建议我在html文档中使用JSP代码,该代码可以访问我的MainController.java类。 因此,将页面加载到JEditorPane中已经更改了html元素。 没有JSP的帮助,有没有办法做到这一点? 其他人推荐使用JTidy,但是在Java的JDK中没有办法吗? 我对所有可能的解决方案持开放态度。 请帮忙。 我的代码: 省略了一些代码内容,因为它们不相关 MainController.java class MainController { private static String currentTotalPayment; public static void main(String[] […]

Java字符串中的字符数

可能重复: Java:使用unicode上线显示平方根时的字符串长度? 如何获取String中的Unicode字符数? 鉴于泰国字符的char[] : [อ, ภ, ิ, ช, า, ต, ิ] 这在String中出现:อภิชาติ String.length()返回7.我知道(技术上)有7个字符,但是我需要一个能够返回5的方法。这就是屏幕上显示的字符空间的确切数量。