Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost][exception] Wide-character design considerations
From: John Dlugosz (JDlugosz_at_[hidden])
Date: 2010-06-25 11:28:47


> > No. The narrow form should be encoded based on the currently
> > selected locale's settings. That is, after all, the whole point of
> > having it. Other functions you pass it to will be expecting that.
>
> Which other function? Yours? Mine? The standard libraries? Third
> party libraries?

Standard library's, and third party that follows the example or calls std primitives to do the work.

> Unfortunately, wide strings are /also/ broken. On some platforms, they
> are utf-32. On some platforms, they are utf-16. On some platforms
> they
> are UCS-2, and you have no way to encode characters past the BMP. You
> also have to worry about byte-order issues.

I've never had to deal with wide strings on other platforms; only the way in which they are pervasive in Windows. I do see that the new C++ draft standard addresses the issue by making explicit types for 16-bit and 32-bit strings encoded in UTF, as distinct from the rather vague "wide".

>
> Utf-8 is the only sane way to deal with international text.

Too bad the early framers of the OS didn't simply add a UTF-8 code page rather than doubling the API.

I would like to point out that using GB18030 is also a useful approach, since support for that is required by law to sell in mainland China, it is really supported by commercial software. And it is defined as a Unicode encoding format. So, you could select that as your code page and all the narrow-string Windows functions and stdlib functions would work properly.

--John




TradeStation Group, Inc. is a publicly-traded holding company (NASDAQ GS: TRAD) of three operating subsidiaries, TradeStation Securities, Inc. (Member NYSE, FINRA, SIPC and NFA), TradeStation Technologies, Inc., a trading software and subscription company, and TradeStation Europe Limited, a United Kingdom, FSA-authorized introducing brokerage firm. None of these companies provides trading or investment advice, recommendations or endorsements of any kind. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net