www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Convert multibyte `string` to `dstring`

reply Vladimirs Nordholm <v vladde.net> writes:
Hello.

Is there a proper way to convert a string with multibyte 
characters into a dstring?

Case scenario:

     string a = "abc😃123"; // a.length == 10 ("abc"==3 + "😃"==4 + 
"123"==3)
     dstring b = foo(a); // b.length = 7 ("abc"==3 + "😃"==1 + 
"123"==3)

     dstring foo(string str) {
         // code...
     }
Nov 25 2018
parent reply Stanislav Blinov <stanislav.blinov gmail.com> writes:
On Sunday, 25 November 2018 at 21:23:31 UTC, Vladimirs Nordholm 
wrote:

 Is there a proper way to convert a string with multibyte 
 characters into a dstring?
void main() { import std.conv : to; import std.stdio : writeln; string a = "abc😃123"; auto b = to!dstring(a); assert(b.length == 7); writeln(b); }
Nov 25 2018
parent Vladimirs Nordholm <v vladde.net> writes:
On Sunday, 25 November 2018 at 21:33:15 UTC, Stanislav Blinov 
wrote:
 On Sunday, 25 November 2018 at 21:23:31 UTC, Vladimirs Nordholm 
 wrote:

 Is there a proper way to convert a string with multibyte 
 characters into a dstring?
void main() { import std.conv : to; import std.stdio : writeln; string a = "abc😃123"; auto b = to!dstring(a); assert(b.length == 7); writeln(b); }
Oh! It was so simple. Thank you so much Stanislav 👍
Nov 25 2018