mozilla

Compare Revisions

Reading textual data

Change Revisions

Revision 96923:

Revision 96923 by Vor0nwe on

Revision 96924:

Revision 96924 by mmccoo on

Title:
Reading textual data
Reading textual data
Slug:
Reading_textual_data
Reading_textual_data
Tags:
Extensions, Add-ons, Internationalization, Unicode
Extensions, Add-ons, Internationalization, Unicode
Content:

Revision 96923
Revision 96924
nn8       
9    </p>
10    <p>
n12        <i>Warning</i>: This article uses unfrozen interfaces. Thn15        <em>Warning</em>: This article uses unfrozen interfaces. 
>ese interfaces may change in newer Mozilla versions and your code>These interfaces may change in newer Mozilla versions and your co
> may stop working.>de may stop working.
n16      In order to read textual data, you need to know which <b><an19      In order to read textual data, you need to know which <stro
> href="en/Character_encoding">character encoding</a></b> the data>ng><a href="/en/Character_encoding" title="en/Character_encoding"
> is in. Files and network sockets contain bytes, not characters ->>character encoding</a></strong> the data is in. Files and networ
> to give these bytes a meaning, you need to know the character en>k sockets contain bytes, not characters - to give these bytes a m
>coding.>eaning, you need to know the character encoding.
nn33    <h3>
34      Converting read data
35    </h3>
36    <p>
37      If you read data from&nbsp;nsIScriptableInputStream&nbsp;as
 > described on the file I/O code snippets page, you can convert it
 > to UTF-8
38    </p>
39    <pre>
40// sstream is nsIScriptableInputStream
41var str = sstream.read(4096);
42var utf8Converter = Components.classes["@mozilla.org/intl/utf8con
 >verterservice;1"].
43    getService(Components.interfaces.nsIUTF8ConverterService);
44var data = utf8Converter.convertURISpecToUTF8 (str, "UTF-8"); 
45</pre>
n138      However, you must be aware that this method <b>will not worn154      However, you must be aware that this method <strong>will no
>k</b> for character encodings that have embedded null bytes, such>t work</strong> for character encodings that have embedded null b
> as UTF-16 or UTF-32.>ytes, such as UTF-16 or UTF-32.
n147      For the limited use case of reading lines from a local filen163      For the limited use case of reading lines from a local file
>, the following code using {{ Interface("nsIScriptableUnicodeConv>, the following code using {{ Interface("nsIScriptableUnicodeConv
>erter") }} works. <b>This code will not work for character encodi>erter") }} works. <strong>This code will not work for character e
>ngs that contain embedded nulls</b> such as UTF-16 and UTF-32>ncodings that contain embedded nulls</strong> such as UTF-16 and 
 >UTF-32
n173      <br>n189      &nbsp;
n180        <a href="en/Writing_textual_data">Writing textual data</an196        <a href="/en/Writing_textual_data" title="en/Writing_text
>>>ual_data">Writing textual data</a>
tt201    </ul>
202    <p>
185    </ul>{{ languages( { "ja": "ja/Reading_textual_data" } ) }}203      {{ languages( { "ja": "ja/Reading_textual_data" } ) }}
204    </p>

Back to History