Tag: unicode

将Unicode转换为ASCII而不更改字符串长度(在Java中)

将字符串从Unicode转换为ASCII而不改变其长度的最佳方法是什么(在我的情况下这非常重要)? 此外,没有任何转换问题的字符必须与原始字符串中的位置相同。 因此,“Ä”必须转换为“A”而不是具有更多字符的神秘内容。 编辑: @novalis – 这些符号(例如亚洲语言)应该只转换为一些占位符。 我对这些词或他们的意思不太感兴趣。 @MtnViewMark – 在任何情况下我都必须保留所有字符的数量和ASCII可用字符的位置。 这里有一些更多的信息:我有一些只能处理ASCII字符串的文本挖掘工具。 大多数应该处理的文本是英文的,但有些文本包含非ASCII字符。 我对这些单词不感兴趣,但我必须确保我感兴趣的单词(那些只包含ASCII字符的单词)在字符串转换后处于相同的位置。

Java无法在文件名中打开具有代理Unicode值的文件?

我正在处理使用文件执行各种IO操作的代码,我想让它能够处理国际文件名。 我正在使用Java 1.5处理Mac,如果文件名包含需要代理的Unicode字符,则JVM似乎无法找到该文件。 例如,我的测试文件是: “草鷗外.gif”被破解成Java字符\u8349\uD85B\uDFF6\u9DD7\u5916.gif 如果我从这个文件名创建一个文件,我无法打开它,因为我得到一个FileNotFoundexception。 即使在包含该文件的文件夹上使用它也会失败: File[] files = folder.listFiles(); for (File file : files) { if (!file.exists()) { System.out.println(“Failed to find File”); //Fails on the surrogate filename } } 我实际处理的大部分代码都是以下forms: FileInputStream instream = new FileInputStream(new File(“草鷗外.gif”)); // operations follow 有没有办法解决这个问题,要么转义文件名,要么以不同的方式打开文件?

字符显示/搜索Unicode字符

在回答关于这些部分的另一个问题时 ,我对可能从系统中可用字体显示的Unicode字符获得的字形感到好奇。 当然,在典型的机器上有65,536个Unicode字符和250多种字体! 让人想知道从哪里开始。 什么是美妙的应用程序。 这允许我们浏览在列表中选择的.any字体中显示的Unicode代码点表。 如果还有: 一个微调器,允许我们跳转到任何感兴趣的代码点。 列表中不太模糊的Unicodes的名称,带有文本搜索可编辑组合。 有关特定选定Unicode点的详细信息,包括: 字符或字形的大显示,所以我们可以注意它。 可以显示它的字体列表。 代码点的属性。 这样的应用程序。 存在? 它可能看起来很好..像这样的东西!

有关Java上无效XML字符的错误

在Java上解析xml文件我得到错误: An invalid XML character (Unicode: 0x0) was found in the element content of the document. xml来自web服务。 问题是我只在webservice在localhost(windows + tomcat)上运行时才会收到错误,但是当webservice在线时(linux + tomcat)则不会。 我怎样才能替换无效的char? 谢谢。

如何检测Java字符串中的unicode字符?

假设我有一个包含Ü的字符串。 我怎样才能找到所有那些unicode字符? 我应该测试他们的代码吗? 我该怎么办? 例如,给定字符串“AÜXÜ”,我想将其转换为“AYXY”。 我想对其他unicode角色做同样的事情,我不想将它们存储在某种翻译地图中。

Java:将字符串“\ uFFFF”转换为char

是否有一种标准方法将像“\ uFFFF”这样的字符串转换为字符,这意味着六个字符的字符串包含一个unicode字符的表示?

用ASCII近似替换unicode标点符号

我正在阅读Java程序中的一些文本文件,并希望用ASCII近似替换一些Unicode字符。 这些文件最终将被分解为送到OpenNLP的句子。 OpenNLP无法识别Unicode字符并在许多符号上给出不正确的结果(它将“girl”标记为“girl”和“s”,但如果它是Unicode引用则将其视为单个标记)。 例如,源语句可能包含Unicode方向引用U2018 (’),我想将其转换为U0027 (’)。 最终我将剥离剩余的Unicode。 我知道我正在丢失信息,而且我知道我可以编写正则表达式来转换这些符号中的每一个,但我想知道是否有可以重用的代码来转换其中的一些符号。 这就是我能做到的,但我相信我会犯错误/错过/等等: // double quotation (“) replacements.add(new Replacement(Pattern.compile(“[\u201c\u201d\u201e\u201f\u275d\u275e]”), “\””)); // single quotation (‘) replacements.add(new Replacement(Pattern.compile(“[\u2018\u2019\u201a\u201b\u275b\u275c]”), “‘”)); 替换是一个自定义类,我后来运行并应用替换。 for (Replacement replacement : replacements) { text = replacement.pattern.matcher(text).replaceAll(r.replacement); } 如你所见,我必须找到: 左单引号 正确的单引号 单低-9报价标记(这是什么/我应该替换它?) 单个高翻-9报价标记(这是什么/我应该替换它?)

如何在Java中打开包含重音符号的文件?

( 编辑澄清并添加一些代码 ) 您好,我们需要解析来自世界各地的用户发送的数据。 我们的Linux系统具有en_US.UTF-8的默认语言环境。 但是,我们经常会在名称中收到带有变音符号的文件,例如“ special_á_ã_è_characters.doc ”。 虽然操作系统可以很好地处理这些文件,并且一个strace显示操作系统将正确的文件名传递给Java程序,但是Java会弹出名称并抛出“找不到文件”ioexception试图打开它们。 这个简单的程序可以说明问题: import java.io.*; import java.text.*; public class load_i18n { public static void main( String [] args ) { File actual = new File(“.”); for( File f : actual.listFiles()){ System.out.println( f.getName() ); } } } 在包含文件special_á_ã_è_characters.doc和默认美国英语语言环境的目录中运行此程序可以: special_�_�_�_characters.doc 通过export LANG = es_ES @ UTF-8设置语言正确打印出文件名(但是这是一个不可接受的解决方案,因为整个系统现在以西class牙语运行。)如下所示在程序中明确设置Locale也没有效果。 下面我修改了程序a)尝试打开文件,b)打开文件时无论是ASCII还是字节数组都打印出来: import java.io.*; import […]

如何使Java.awt.Robot类型为unicode字符? (可能吗?)

我们有一个用户提供的字符串,可能包含unicode字符,我们希望机器人键入该字符串。 如何将字符串转换为机器人将使用的keyCodes? 你是如何做到这一点它也是java版本独立(1.3 – > 1.6)? 我们为“ascii”字符工作的是 //char c = nextChar(); //char c = ‘a’; // this works, and so does ‘A’ char c = ‘á’; // this doesn’t, and neither does ‘Ă’ Robot robot = new Robot(); KeyStroke key = KeyStroke.getKeyStroke(“pressed ” + Character.toUpperCase(c) ); if( null != key ) { // should only […]

为什么Java char原语会占用2个字节的内存?

有没有理由为什么Java char原始数据类型是2字节不像C这是1字节? 谢谢