String unicode转义中的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}"""

在Scala字符串中,需要逐字包含以下文字:
\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}