前面没有\的撇号
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">'string' 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>
【讨论】:
以上是关于前面没有\的撇号的主要内容,如果未能解决你的问题,请参考以下文章