<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Convert from GS::UniString to std::string in Archicad C++ API</title>
    <link>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306974#M1754</link>
    <description>&lt;P&gt;To convert between GS::UniString and std::wstring:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;GS::UniString ToUniString (const std::wstring&amp;amp; str)
{
	static_assert (sizeof (GS::UniChar::Layout) == sizeof (wchar_t), "string character size mismatch");
	return GS::UniString ((const GS::UniChar::Layout*) str.c_str (), (GS::USize) str.size ());
}

std::wstring ToWString (const GS::UniString&amp;amp; str)
{
	static_assert (sizeof (GS::UniChar::Layout) == sizeof (wchar_t), "string character size mismatch");
	return std::wstring ((const wchar_t*) str.ToUStr ().Get (), str.GetLength ());
}&lt;/LI-CODE&gt;
&lt;P&gt;To convert between std::string and std::wstring:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;std::wstring StringToWString (const std::string&amp;amp; str)
{
	std::wstring_convert&amp;lt;std::codecvt_utf8&amp;lt;wchar_t&amp;gt;, wchar_t&amp;gt; convert;
	return std::wstring (convert.from_bytes (str));
}

std::string WStringToString (const std::wstring&amp;amp; str)
{
	std::wstring_convert&amp;lt;std::codecvt_utf8&amp;lt;wchar_t&amp;gt;, wchar_t&amp;gt; convert;
	return std::string (convert.to_bytes (str));
}&lt;/LI-CODE&gt;</description>
    <pubDate>Wed, 22 Sep 2021 14:42:22 GMT</pubDate>
    <dc:creator>Viktor Kovacs</dc:creator>
    <dc:date>2021-09-22T14:42:22Z</dc:date>
    <item>
      <title>Convert from GS::UniString to std::string</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306967#M1753</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;How to convert from GS::UniString to std::string?&lt;/P&gt;&lt;P&gt;(I need to pass it to another API which takes std::string)&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Sep 2021 13:52:16 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306967#M1753</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2021-09-22T13:52:16Z</dc:date>
    </item>
    <item>
      <title>Re: Convert from GS::UniString to std::string</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306974#M1754</link>
      <description>&lt;P&gt;To convert between GS::UniString and std::wstring:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;GS::UniString ToUniString (const std::wstring&amp;amp; str)
{
	static_assert (sizeof (GS::UniChar::Layout) == sizeof (wchar_t), "string character size mismatch");
	return GS::UniString ((const GS::UniChar::Layout*) str.c_str (), (GS::USize) str.size ());
}

std::wstring ToWString (const GS::UniString&amp;amp; str)
{
	static_assert (sizeof (GS::UniChar::Layout) == sizeof (wchar_t), "string character size mismatch");
	return std::wstring ((const wchar_t*) str.ToUStr ().Get (), str.GetLength ());
}&lt;/LI-CODE&gt;
&lt;P&gt;To convert between std::string and std::wstring:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;std::wstring StringToWString (const std::string&amp;amp; str)
{
	std::wstring_convert&amp;lt;std::codecvt_utf8&amp;lt;wchar_t&amp;gt;, wchar_t&amp;gt; convert;
	return std::wstring (convert.from_bytes (str));
}

std::string WStringToString (const std::wstring&amp;amp; str)
{
	std::wstring_convert&amp;lt;std::codecvt_utf8&amp;lt;wchar_t&amp;gt;, wchar_t&amp;gt; convert;
	return std::string (convert.to_bytes (str));
}&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 22 Sep 2021 14:42:22 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306974#M1754</guid>
      <dc:creator>Viktor Kovacs</dc:creator>
      <dc:date>2021-09-22T14:42:22Z</dc:date>
    </item>
    <item>
      <title>Re: Convert from GS::UniString to std::string</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306982#M1755</link>
      <description>&lt;P&gt;Hi Viktor,&lt;/P&gt;&lt;P&gt;Thanks for that info.&lt;/P&gt;&lt;P&gt;I found that simply doing:&amp;nbsp; &lt;STRONG&gt;std::string myStdStr(myUniStr.ToCStr())&lt;/STRONG&gt;&amp;nbsp; works.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Sep 2021 15:28:22 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/306982#M1755</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2021-09-22T15:28:22Z</dc:date>
    </item>
    <item>
      <title>Re: Convert from GS::UniString to std::string</title>
      <link>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/307547#M1756</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(removed because redundant suggestion)&lt;/P&gt;</description>
      <pubDate>Mon, 27 Sep 2021 18:00:58 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-C-API/Convert-from-GS-UniString-to-std-string/m-p/307547#M1756</guid>
      <dc:creator>drjustice</dc:creator>
      <dc:date>2021-09-27T18:00:58Z</dc:date>
    </item>
  </channel>
</rss>

