String unicode转义中的Scala原始字符串错误
在Scala字符串中,需要逐字包含以下文字:String unicode转义中的Scala原始字符串错误,string,scala,unicode,unicode-escapes,String,Scala,Unicode,Unicode Escapes,在Scala字符串中,需要逐字包含以下文字:\usepackage{x}。因此,我们希望 val s = """ ... \usepackage{X} ... """ println(s) ... \usepackage{X} ... 迄今为止的尝试包括: scala> """\usepackage{X}""" <console>:1: error: error in unicode escape """\usepackage{X}"""
\usepackage{x}
。因此,我们希望
val s = """ ... \usepackage{X} ... """
println(s)
... \usepackage{X} ...
迄今为止的尝试包括:
scala> """\usepackage{X}"""
<console>:1: error: error in unicode escape
"""\usepackage{X}"""
^
scala> raw"""\usepackage{X}"""
<console>:1: error: error in unicode escape
raw"""\usepackage{X}"""
^
这不包括unicode的情况。您似乎面临着这个问题 在Scala中,unicode转义序列不仅在字符或字符串文本中处理。以下代码是否有效可能并不明显:
scala> 5 \u002B 10
res0: Int = 15
不幸的是,如果您不想完全禁用unicode转义(-Xno-uescape
,仅在Scala 2.13.1之前可用,请参阅和),那么似乎没有一个好方法可以解决这个问题
SI-4706版本中建议的解决方法之一是分离反斜杠字符:
scala> """\""" + """usepackage{X}"""
res1: String = \usepackage{X}
如果您有答案,请不要编辑您的原始问题,发布答案并接受它。感谢“-Xno uescape”提示\即使在注释中,u也会导致编译失败。您也可以对反斜杠和“u”进行Unicode编码:
“\u005c\u0075”“”
正确地给出了\u
@ComFreek我迟到了三年,但这值得单独回答
scala> """\""" + """usepackage{X}"""
res1: String = \usepackage{X}