Re: unicode fraction symbol in a NSTextView
Re: unicode fraction symbol in a NSTextView
- Subject: Re: unicode fraction symbol in a NSTextView
- From: tridiak <email@hidden>
- Date: Thu, 23 Jun 2016 17:04:05 +1200
> On 23/06/2016, at 5:29 AM, Steve Christensen <email@hidden> wrote:
>
> Where are you specifying the text encoding of the HTML "document" passed to NSMutableAttributedString(HTML:, documentAttributes:)? The default encoding for HTML used to be ISO-8859-1, not UTF-8, for HTML 4 and earlier (and could continue to be interpreted that way by NSAttributedString for compatibility). That could explain the extra character being displayed since the string you're passing as the HTML parameter to NSMutableAttributedString doesn't include, for example, a charset="utf8" meta tag in its <head> that would specify the desired encoding.
>
> And, unless you're doing some extra formatting not shown in your code snippet, is there any reason you wouldn't be initializing ats with NSAttributedString(string:s)?
>
Copied from another project which uses an html document to be inserted into the NSTextView.
This project did have a database which did not have an HTML layout field and I forgot to change to NSAttributedString(string:s).
Found another DB which has an HTML data field (after I posted the original email), so I will drop my hand created version and use that.
I don’t deal with HTML much (besides basic websites) and completely forgot about the encoding.
Thanks for all the help.
>
>> On Jun 22, 2016, at 9:32 AM, tridiak <email@hidden> wrote:
>>
>> I am setting some text to a NSTextView which includes the ‘½’ character.
>>
>> s = name + “ CR "
>> switch (CR) {
>> case 0.5:
>> s=s+”½” // \u{00bd}
>> case 0.33:
>> s=s+"⅓"
>> case 0.25:
>> s=s+"¼"
>> case 0.2:
>> s=s+"⅕"
>> case 0.17:
>> s=s+"⅙"
>> case 0.14:
>> s=s+"⅐"
>> case 0.13:
>> s=s+"⅛"
>> default:
>> if CR<1 {s=s+String(format:"%.1f", CR)}
>> else {s=s+String(format:"%.0f", CR)}
>> }
>> s=s+"\n”
>>
>> let d : NSData = s.dataUsingEncoding(NSUTF8StringEncoding)!
>> let ats : NSMutableAttributedString = NSMutableAttributedString(HTML: d, documentAttributes: nil)!
>> self.blab.textStorage?.setAttributedString(ats)
>>
>>
>> What I see is 'Aasimar CR ½’ instead of 'Aasimar CR ½’.
>> Where is the ‘Â' coming from?
>> Is it the font or some swift-obj-C confusion?
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden