java - 棘手的特殊单引号

标签 java regex text ascii non-ascii-characters

我观察到普通单引号 ' 和 word 文档中的单引号 ' 是有区别的。 我试图从在线 ASCII 值查找器中找到这两个字母的 ASCII 值。我可以找到第一个的 ASCII 值,但找不到后面一个的 ASCII ()。

我什至尝试使用 JAVA 程序查找 ASCII 值,例如:

public static void main (String[] args) throws java.lang.Exception{
    char ch='\’';
    System.out.println((int)ch);
}

Java 程序在这样尝试时也报错。

那么,' 字符的问题基本上是什么?

我知道这个 ' 符号可以通过键入单引号从 MS word 文档生成。

字符可以复制到任何编辑器中,复制到记事本后符号将保持不变。但是如果我们输入一个单引号,它只会以普通单引号 ' 的形式出现。

所以,基本上当我们在 Word 文档中键入程序并将其复制到 IDE 或其他地方以执行它时。那就出问题了吧?那么,如何解决这个问题呢?

除了将 ' 替换为 ' 之外,还有什么解决方案?

这个问题与任何语言都没有特别的关系。这是每个人都应该意识到的普遍问题。

值得注意的编辑:

  public static void main (String[] args) throws java.lang.Exception{
    char ch='’';
    System.out.println((int)ch);
}

给出 8217(作为建议的答案之一)

但是还是怎么解决呢?

最佳答案

其他答案已正确指出您的撇号不是 ASCII 字符而是 Unicode 字符,称为 RIGHT SINGLE QUOTATION MARK .

源代码中包含此字符的问题是您的词法分析器/编译器无法将此字符识别为字符串的开头或结尾,或者在您的语言中使用撇号的任何其他内容。因此,它不会像源代码中的普通撇号那样工作。

您已经说过您不想进行查找和替换,所以您可以做的是让您的文本编辑器只使用普通的 ASCII 撇号。

如果您使用的是 Microsoft Word(我可能会补充说,它不是一个非常好的代码编辑器)那么您可以禁用“智能引号”来解决这个问题。在 Word 2007 onwards 中有关于如何执行此操作的说明。和 Word 2003 .我已经对此进行了测试,它确实使 Word 仅使用直撇号。

或者,您也可以使用不包含右单引号字形的字体(如果您能找到的话)。

关于java - 棘手的特殊单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24204902/

相关文章:

css - 如何使用css对齐xslt中的文本和图像

java - Matlab java接口(interface): java. io.IOException : The issuer can not be found in the trusted CA list?

java - 为什么 JSoup 不读取页面的所有元素?

c# - 正则表达式从js代码中提取地址

python - 在 BeautifulSoup、python 中仅从表 (td) 中提取特定的行和列

用于删除特定逗号位置之前的所有内容的正则表达式

java - 如何从 Android 的内部存储编辑 XML 文件?

java - 如何在Spring Security中忽略请求参数

php - Jquery显示来自mysql的文本

android - 没有边框颜色的圆角文本字段