前面没有\的撇号

Posted

技术标签:

【中文标题】前面没有\\的撇号【英文标题】:Apostrophe not preceded by \前面没有\的撇号 【发布时间】:2013-03-20 07:06:48 【问题描述】:

我在 android 应用程序中定义了一个字符串:

<string name="search_occurs">'string' occurs times</string>

这给出了错误:撇号前面没有\(在'string'发生times)

我已经尝试了很多方法来解决这个问题:

<string name="search_occurs">\'string\' occurs times</string>
<string name="search_occurs">&apos;string&apos; occurs times</string>
<string name="search_occurs"><![CDATA['string' occurs times]]></string>
<string name="search_occurs"><![CDATA[\'string\' occurs times]]></string>

我无法摆脱错误。我错过了什么?

【问题讨论】:

\' 为我工作。刚刚在 Eclipse 中试了一下。 在撇号前添加反斜杠后,需要Clean 并为Eclipse 重建整个项目以停止抱怨错误。 【参考方案1】:

确保您正在编辑正确的文件。正如this answer 所说,当您收到错误消息时,Android Studio 会打开一个values.xml 文件,该文件看起来与您的原始文件相似。您必须在原始 strings.xml 文件中添加 \(或任何有问题的字符)。否则它只会不断重复错误。

【讨论】:

【参考方案2】:

将撇号 (') 替换为 (\') 要么 在每个 (') 之前添加 \

注意:仅在 () 文本内复制

【讨论】:

【参考方案3】:

我得到了基于我的场景的解决方案。

    选择您的 string.xml 文件 右键单击并在资源管理器中打开显示 编辑 string.xml 文件中的行并保存代码。 重新打开 Android Studio 并刷新解决方案。

现在代码将运行。

注意:我在不能上使用撇号时出现错误。所以我变成了不能。现在我的方案可以工作了。

【讨论】:

【参考方案4】:

此错误是由字符串中使用的撇号引起的

用\'替换撇号

【讨论】:

【参考方案5】:

回复https://***.com/users/3339394/the-martian 有用 \' 替换' 的一般解决方案,您必须将文本复制到文字编辑器(如记事本 ++)中,然后使用程序中的“替换”选项将整个 's 替换为 \' 。 (因为我没有足够的声誉,我不得不在答案中写下对不起!)

【讨论】:

【参考方案6】:

只需将 \ 放在字符串中的 ' 之前 这是错误的 这是真的:)

【讨论】:

有更清洁的方法吗?我正在将我的应用程序本地化为法语,我的字符串文件夹包含大量文本。所以浏览所有文本并添加反斜杠显然不是最好的主意。 不,这是唯一的方法。 @The_Martian 我也遇到了同样的问题,你有没有找到建议以外的方法?【参考方案7】:

这些都应该根据http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling工作:

<string name="search_occurs">\'string\' occurs times</string>
<string name="search_occurs">"'string' occurs times"</string>

【讨论】:

第一个对我有用,没有测试过第二个。伟大的工作 两者都应该,并且在这两种情况下,android studio 在构建之前都会修剪引号和反斜杠,还将 \u0027 转换为单引号,然后显示错误。【参考方案8】:

为什么不向' 提供替换它的字符串?

你也知道这样的构造吗?

<string name="profile_age_range_text_between">between %1$d and %2$d</string>
<string name="unit_height_inches">%1$d\'%2$d ft</string>
<string name="unit_distance_miles">%s mi</string>

【讨论】:

以上是关于前面没有\的撇号的主要内容,如果未能解决你的问题,请参考以下文章

将 ' 转换为 PHP 中的撇号

忽略正则表达式中的撇号[重复]

使用 Python 处理 sql 时的撇号 (') 帮助

jsStringFormat() 和带有 JSON 的撇号

忽略包含中的撇号

XML 字符串文件中的撇号