• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How would you convert a \r to its UTF-8 counterpart ?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How would you convert a \r to its UTF-8 counterpart ?


  • Subject: Re: How would you convert a \r to its UTF-8 counterpart ?
  • From: Nir Soffer <email@hidden>
  • Date: Thu, 27 Jul 2006 00:22:24 +0300

I tried with PyObjC:

from Foundation import *

src = NSDictionary.dictionaryWithObject_forKey_(
	u"CR\rLF\nNEL\u0085FF\u000CLS\u2028PS\u2029", 'whitespace')
src.writeToFile_atomically_('cocoa.plist', True)

dst = NSDictionary.dictionaryWithContentsOfFile_('cocoa.plist')

assert src == dst

It generates this markup:

<dict>
	<key>whitespace</key>
	<string>CR
LF
NEL
FFLS
PS
</string>
</dict>

And the generated plist file is correct according to plutil -lint

So it seems that you can stuff anything you like into the plist and let it do the right thing for you :-)


On 26/07/2006, at 23:11, stephen joseph butler wrote:

2006/7/26, Stéphane Sudre <email@hidden>:
On mercredi, juillet 26, 2006, at 12:03 AM, Shawn Erickson wrote:
> On Jul 25, 2006, at 2:20 PM, Stéphane Sudre wrote:
>
>> How would you convert a \r to its UTF-8 counterpart ?
>
> You may want to review what UTF-8 really is [1] since it has little to
> do directly with what you are asking.
>
> \r is ASCII CR which is 0x0D in ASCII and in UTF-8.
>
> Anyway it looks like you are asking about character escaping in XML
> (for example [2], [3]).


Ok, I need to rephrase the question to use the proper terms.

How can I save a string in a plist inside <string></string> tags so
that the string is saved with character escaping for the '\r' (and
probably '\n') characters?

This is done automatically for the & character.

Have you given this a test as is? For example, in F-Script (a sort of Objective-C scripting language) I tried this:

dict1 := NSDictionary dictionaryWithObjects:{'this is\r  a test\r',
'\r\rthis is another test\r\r'} forKeys:{'a', 'b'}
dict1 writeToFile:'/Users/foo/test.plist' atomically:true

dict2 := NSDictionary dictionaryWithContentsOfFile:'/Users/foo/ test.plist'
dict2 objectForKey:'a'
dict2 objectForKey:'b'


Both printed out fine. If you take a look at the XML spec, it has this
to say about whitespace:

"An XML processor MUST always pass all characters in a document that
are not markup through to the application. A  validating XML processor
MUST also inform the application which of these characters constitute
white space appearing in element content."

So how whitespace is handled is entirely up to the application, it is
illegal for parsers to ignore it. Obviously, Apple has chosen to not
ignore it.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


Best Regards,

Nir Soffer

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Re: How would you convert a \r to its UTF-8 counterpart ? (From: Shawn Erickson <email@hidden>)
 >Re: How would you convert a \r to its UTF-8 counterpart ? (From: Stéphane Sudre <email@hidden>)
 >Re: How would you convert a \r to its UTF-8 counterpart ? (From: "stephen joseph butler" <email@hidden>)

  • Prev by Date: Dynamic NSPopUpButton in NSToolbar
  • Next by Date: Re: Printing Core Data
  • Previous by thread: Re: How would you convert a \r to its UTF-8 counterpart ?
  • Next by thread: Re: How would you convert a \r to its UTF-8 counterpart ?
  • Index(es):
    • Date
    • Thread