Deprecation of toUTF16

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Aug 31 12:37:20 PDT 2017


On 8/31/17 12:12 PM, Andre Pany wrote:
> Hi,
> 
> I have some problems to find out what to use instead of the deprecated 
> toUTF16 function.
> 
> I am calling a shared library written in Delphi.
> While this coding is working fine (with german ü)
> 
> import std.utf: toUTF16;
> wstring ws = toUTF16(s);
> BSTR bStr = SysAllocStringLen(ws.ptr, cast(UINT) ws.length);
> 
> This coding fails to display the german ü correctly:
> 
> import std.utf: encode;
> wchar[] ws;
> s.each!(c => encode(ws, c));
> BSTR bStr = SysAllocStringLen(ws.ptr, cast(UINT) ws.length);
> 
> 
> Variable s is of type string. On delphi side WideString is used as type 
> for the string.
> Where is the error?
> 

The error is actually in the compiler -- the toUTF16 function you are 
calling is NOT being deprecated. But the compiler mistakenly is marking 
it as deprecated.

See here:

https://issues.dlang.org/show_bug.cgi?id=17193

-Steve


More information about the Digitalmars-d-learn mailing list