Ok, thanks. Luca.
On Mar 21, 2013, at 3:43 PM, Glenn L. Austin <gl...@austin-soft.com> wrote: > > On Mar 21, 2013, at 2:34 AM, Jean-Daniel Dupas <devli...@shadowlab.org> wrote: > >> >> Le 21 mars 2013 à 09:27, Luca Ciciriello <luca_cicirie...@hotmail.com> a >> écrit : >> >>> Hi all. >>> I'm using in my iOS project some Objective-C++ modules. Here I have some >>> conversion from NSString to C++11 std::string. After this conversion I >>> found (correctly) in my std::string some 2-byte characters. >>> My question is: How can I count the number of chars and not the numbers of >>> byte in my std::string? >>> >> >> Don't use std::string to store unicode string. They are not design to >> support such content. >> >> You can use std::wstring instead. > > > Actually, std::string works *just fine* for UTF-8 strings. > > It's just that, in Unicode, 1 character doesn't necessarily fit in 1 byte. > Also, you can't easily do truncation of strings (you might be truncating the > string in the middle of a multi-byte sequence -- which is true in pretty much > every encoding except UCS-4). > > UTF-8 is relatively easy to work with, however. You look at the previous > byte in the string to see if your current character is part of a multi-byte > sequence or not -- and keep going back until you find one that doesn't have > the high-bit set, and that's the last character of the previous sequence. Of > course, that "go back" doesn't mean anything if you're already at the first > byte in your string... > > -- > Glenn L. Austin, Computer Wizard and Race Car Driver <>< > <http://www.austin-soft.com> > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com