[fpc-pascal] Casting UTF8String, WideString and UnicodeString into AnsiString and vice versa

Jonas Maebe jonas.maebe at elis.ugent.be
Mon Dec 3 20:07:41 CET 2012


On 03 Dec 2012, at 20:01, ik wrote:

> On Mon, Dec 3, 2012 at 7:31 PM, Jonas Maebe <jonas.maebe at elis.ugent.be> wrote:
>> 
>> On 03 Dec 2012, at 18:12, ik wrote:
>> 
>>> I made casting of UTF8String, WideString and UnicodeString to AnsiString:
>>> https://github.com/ik5/fp-msgpack/blob/master/src/msgpack.pas#L452
>>> 
>>> As an example.
>>> 
>>> My tests works. but are there things/contents that can break this
>>> casting, or change the content itself in some way ?
>> 
>> It creates a new temporary string with the default code page for that string type (e.g., DefaultSystemCodePage for ansistring), and converts the original string's content to this new encoding.
> 
> Isn't that only 2.7.1 feature ?!

Well, you didn't specify a particular version, and you asked about what could break such casting. And other than the string-specific codepages for ansistring/utf8string, the rest still holds (e.g. casting a unicodestring to ansistring can easily result in data loss even in 2.6.x, because there will be a conversion to the default system code page).


Jonas


More information about the fpc-pascal mailing list