TextDecoder

TextDecoder インターフェイスは特定のテキストエンコーディング、例えば UTF-8, ISO-8859-2, KOI8-R, GBK, 等のデコーダーを表します。デコーダーは入力としてバイトのストリームを取り、コードポイントのストリームを出力します。

型付き配列でのテキスト表現

この例では、中国語/日本語の文字 を、異なる 5 種類の型付き配列、 Uint8Array, Int8Array, Uint16Array, Int16Array, Int32Array で表します。

let utf8decoder = new TextDecoder(); // default 'utf-8' or 'utf8'

let u8arr = new Uint8Array([240, 160, 174, 183]);
let i8arr = new Int8Array([-16, -96, -82, -73]);
let u16arr = new Uint16Array([41200, 47022]);
let i16arr = new Int16Array([-24336, -18514]);
let i32arr = new Int32Array([-1213292304]);

console.log(utf8decoder.decode(u8arr));
console.log(utf8decoder.decode(i8arr));
console.log(utf8decoder.decode(u16arr));
console.log(utf8decoder.decode(i16arr));
console.log(utf8decoder.decode(i32arr));

UTF8 ではないテキストの扱い

この例では、ロシア語の "Привет, мир!"、 "Hello, world." という意味のテキストをデコードします。 TextDecoder() コンストラクターでは、キリル語の文字に適した Windows-1251 文字エンコーディングを指定します。

let win1251decoder = new TextDecoder('windows-1251');
let bytes = new Uint8Array([207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33]);
console.log(win1251decoder.decode(bytes)); // Привет, мир!

コンストラクター

TextDecoder()
新たに生成した TextDecoder を返します。これは、引数で指定したデコード方式を使用して連続したコードポイントを生成します。

プロパティ

TextDecoder インターフェイスは、何もプロパティを継承していません。

TextDecoder.prototype.encoding読取専用
デコーダーの名称を持つ DOMString であり、これは TextDecoder が使用する方式を表す文字列です。
TextDecoder.prototype.fatal読取専用
エラーモードが fatal であるかを示す Boolean です。
TextDecoder.prototype.ignoreBOM読取専用
バイトオーダーマークを無視するかどうかを示す Boolean です。

メソッド

TextDecoder インターフェイスは、何もメソッドを継承していません。

TextDecoder.prototype.decode()
特定の TextDecoder オブジェクトの方式でデコードされたテキストを含む DOMString を返します。

仕様書

仕様書 状態 備考
Encoding
TextDecoder の定義
現行の標準 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
TextDecoderChrome 完全対応 38Edge 完全対応 ≤79Firefox 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
IE 未対応 なしOpera 完全対応 25Safari 完全対応 10.1WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
Opera Android 完全対応 ありSafari iOS 完全対応 10.3Samsung Internet Android 完全対応 3.0
TextDecoder() constructorChrome 完全対応 38Edge 完全対応 ≤79Firefox 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
IE 未対応 なしOpera 完全対応 25Safari 完全対応 10.1WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
Opera Android ? Safari iOS 完全対応 10.3Samsung Internet Android 完全対応 3.0
decodeChrome 完全対応 38Edge 完全対応 ≤79Firefox 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
IE 未対応 なしOpera 完全対応 25Safari 完全対応 10.1WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
Opera Android 完全対応 ありSafari iOS 完全対応 10.3Samsung Internet Android 完全対応 3.0
encodingChrome 完全対応 38Edge 完全対応 ≤79Firefox 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
IE 未対応 なしOpera 完全対応 25Safari 完全対応 10.1WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 19
完全対応 19
部分対応 18
補足
補足 Implemented a slightly different version of the spec.
Opera Android 完全対応 ありSafari iOS 完全対応 10.3Samsung Internet Android 完全対応 3.0
fatalChrome 完全対応 ありEdge 完全対応 ≤79Firefox 完全対応 ありIE 未対応 なしOpera 完全対応 ありSafari 完全対応 10.1WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 10.3Samsung Internet Android 完全対応 あり
ignoreBOMChrome 完全対応 ありEdge 完全対応 ≤79Firefox 完全対応 ありIE 未対応 なしOpera 完全対応 ありSafari 完全対応 10.1WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 10.3Samsung Internet Android 完全対応 あり
Available in workersChrome 完全対応 38Edge 完全対応 ≤79Firefox 完全対応 20IE 未対応 なしOpera 完全対応 25Safari 完全対応 10.1WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 20Opera Android ? Safari iOS 完全対応 10.3Samsung Internet Android 完全対応 3.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。

関連情報