我观察到普通单引号 '
和 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/