[issue10733] plistlib rejects strings containing control characters
Ronald Oussoren
report at bugs.python.org
Tue Dec 21 18:00:37 CET 2010
Ronald Oussoren <ronaldoussoren at mac.com> added the comment:
I agree with Martin that this is a tricky one.
The file is problematic because it is invalid XML[1], however Apple's tools are perfectly happy to proces the file and as Mitchell notes plistlib exists to interoperate with Apple's plist files.
I'm therefore reopening the issue, but with a low priority. It is unlikely that I'll work on this in the near future though.
Replacing all control characters by entities before trying to parse the Plist XML would likely be the best way forward. A patch (including testcases) would definitely be appreciated.
BTW. I've checked that Apple's Cocoa libraries will read the file, this is not just a bug in the xml1 output formatter of plutil.
Using PyObjC:
>>> from Foundation import NSDictionary
>>> d = NSDictionary.dictionaryWithContentsOfFile_('com.apple.Terminal.plist')
[1] It is invalid XML because it contains control characters which are invalid according to the XML specification (<http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char>).
----------
priority: normal -> low
stage: committed/rejected -> unit test needed
status: closed -> open
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue10733>
_______________________________________
More information about the Python-bugs-list
mailing list