<h2>Strings</h2> <p>Strings representation inside the Mono runtime. <h3>Synopsis</h3> <div class="header"> #include <metadata/object.h> typedef struct { MonoObject object; gint32 length; gunichar2 chars [0]; } MonoString; @API_IDX@ </div> <p>All of the operations on strings are done on pointers to MonoString objects, like this: <div class="code"> MonoString *hello = mono_string_new (mono_domain_get (), "hello, world"); </div> <p>Strings are bound to a particular application domain, which is why it is necessary to pass a MonoDomain argument as the first parameter to all the constructor functions. <p>Typically, you want to create the strings on the current application domain, so a call to <tt>mono_domain_get()</tt> is sufficient. <h3>Constructors</h3> <h4><a name="api:mono_string_new">mono_string_new</a></h4> <h4><a name="api:mono_string_new_len">mono_string_new_len</a></h4> <h4><a name="api:mono_string_new_size">mono_string_new_size</a></h4> <h4><a name="api:mono_string_new_utf16">mono_string_new_utf16</a></h4> <h4><a name="api:mono_string_from_utf16">mono_string_from_utf16</a></h4> <h3>Conversions</h3> <h4><a name="api:mono_string_to_utf16">mono_string_to_utf16</a></h4> <h4><a name="api:mono_string_to_utf8">mono_string_to_utf8</a></h4> <h3>Methods</h3> <h4><a name="api:mono_string_equal">mono_string_equal</a></h4> <h4><a name="api:mono_string_hash">mono_string_hash</a></h4> <h4><a name="api:mono_string_intern">mono_string_intern</a></h4> <h4><a name="api:mono_string_is_interned">mono_string_is_interned</a></h4> <h4><a name="api:mono_string_new_wrapper">mono_string_new_wrapper</a></h4> <h4><a name="api:mono_string_chars">mono_string_chars</a></h4> <h4><a name="api:mono_string_length">mono_string_length</a></h4> <h3>Other Encodings</h3> <p>These routines are used when coping with strings that come from Mono's environment, and might be encoded in one or more of the external encodings. <p>For example, some file systems might historically contain a mix of file names with both old and new encodings, typically UTF8 for new files, and the old files would be encoded in an 8 bit character set (ISO-8859-1 for example). <p>These routines try a number of encodings, those specified in the <tt>MONO_ENCODINGS</tt> environment variable and return unicode strings that can be used internally. <p>See the mono(1) man page for more details. <h4><a name="api:mono_unicode_from_external">mono_unicode_from_external</a></h4> <h4><a name="api:mono_unicode_to_external">mono_unicode_to_external</a></h4> <h4><a name="api:mono_utf8_from_external">mono_utf8_from_external</a></h4>