棘手的特殊单引号符号

时间:2014-06-13 12:06:24

标签: java regex text ascii non-ascii-characters

我发现普通单引号'与单词中的单引号之间存在差异。 我试图从两个字母的在线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(作为建议的答案之一)

但仍然如何解决问题?

1 个答案:

答案 0 :(得分:3)

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

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

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

如果你正在使用Microsoft Word(我可能会添加,不是一个非常好的代码编辑器),那么你可以禁用“智能引号”来解决这个问题。有关如何在Word 2007 onwardsWord 2003中执行此操作的说明。我已经测试了这个,它确实让Word只使用直撇号。

或者,您也可以使用不包含RIGHT SINGLE QUOTATION MARK字形的字体(如果可以找到)。