编辑 .plist 文件 - 是不是允许将单引号用作字符串?
Posted
技术标签:
【中文标题】编辑 .plist 文件 - 是不是允许将单引号用作字符串?【英文标题】:Editing .plist files - are single quotes allowed as strings?编辑 .plist 文件 - 是否允许将单引号用作字符串? 【发布时间】:2008-11-02 05:26:36 【问题描述】:特别是,我正在为 CSSEdit 编辑 AutoCompletion.plist 文件(如果这很重要的话)。
我的问题是,是否有任何带有 STRING 元素的字符需要转义?空间?引号?
编辑: 为了清楚起见,我没有使用 CSSEdit 来编辑文件——而是该文件是 CSSEdit 包的一部分。我正在使用 TextMate 来编辑文件(尽管“Property List Editor.app”是另一种选择)并且它是 XML 格式的。这是 AutoCompletion.plist 文件中的一个 sn-p:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>font-family</key>
<array>
<string>Arial</string>
<string>Helvetica</string>
<string>Georgia</string>
<string>serif</string>
<string>sans-serif</string>
<string>cursive</string>
etc...
我想添加带有空格和单引号的字符串,例如:
<string>Georgia, Times, 'Times New Roman', serif</string>
但是当我像这样编辑文件时,CSSEdit 变得混乱了
【问题讨论】:
【参考方案1】:如果您正在使用某种文本编辑器编辑 XML plist,则需要像在任何 XML 中一样对字符进行转义。需要注意的基本字符是:
>(大于),转义为 >
&(和号),转义为 &
'(撇号),转义为 '
"(引号),转义为 "
所以在你的例子中,你会想要
<string>Georgia, Times, &apos;Times New Roman&apos;, serif</string>
您还可以使用免费的Xcode developer tools 中包含的Apple 的Property List Editor 之类的工具,或PlistEdit Pro 之类的第三方产品,这两者都会为您处理所有字符转义。
【讨论】:
谢谢,布赖恩。这就是我一直在寻找的技术。【参考方案2】:您可以使用plutil
检查您的 plist 的语法。 (请注意,这不会验证应用程序是否会理解您对其 plist 所做的事情......)
【讨论】:
我认为问题一定是CSSEdit要求plist不能有空格或引号。【参考方案3】:有 3 种类型的 plist,转义规则取决于您使用的类型。最常见的形式是 XML plist,它确实需要对某些内容进行转义。通常,您可以在字符串元素中使用 XML 转义规则。如果您正在使用较旧的 NextStep 样式 plist,我相信需要转义的内容要少得多,但我需要查看详细信息以确定规则是什么。第三种是二进制的,我很确定你不是用 CSSEdit 编辑的。
【讨论】:
以上是关于编辑 .plist 文件 - 是不是允许将单引号用作字符串?的主要内容,如果未能解决你的问题,请参考以下文章
$_POST 正在删除单引号(或如何将单引号放入 $_POST)[重复]