decoderとは? わかりやすく解説

デコーダー【decoder】


デコーダ 【decoder】

デコード処理を行う機器をいう。

【対】エンコーダ

デコーダ

【英】decoder

デコーダとは、データの圧縮や暗号化など、符号化されたデータを復号化する(元に戻す)機能を持つもののことである。

デコーダはデコードするもの全般を指すので、圧縮ファイルの解凍、暗号化された情報の復号、MP3などの音声圧縮ファイルの再生、などはデコーダによって行われるといえる。デコーダはソフトウェアとして実現されているものもあれば、チップに実装されてハードウェア的に実現されているものもある。

デコーダの対義語はエンコーダで、データをある規則で圧縮したり暗号化したりする符号化のためのソフトウェアのことを指す。デコーダが対応していないエンコーダで処理されたデータは、複合化できない。

デコーダはバーコードリーダのような機器でも利用されている。バーコードリーダでは、検出された波形をデータとして取り込み、データのロジック値を正確に解析し、一度のスキャニングでデータを認識している。

ソフトウェアのほかの用語一覧
機能:  ダンプ  ディスパッチ  ティップス  デコーダ  テンプレート  チュートリアル  割り込み

Decoder クラス

エンコード済みバイト シーケンスを文字のセットに変換します。

名前空間: System.Text
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class
 Decoder
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class Decoder
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class Decoder abstract
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class Decoder
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class Decoder
解説解説

エンコーディングは、文字のセットをバイト シーケンスに変換するプロセスです。デコードはその逆になります。エンコードされたバイト シーケンスを文字のセットに変換するプロセスです。

Decoder では、複数のブロックにまたがるバイト シーケンスを正確にデコードできるように、GetChars への連続する呼び出し間でステータス情報を維持します。また、Decoder は、データ ブロックの末尾で後続バイトを保持し、その後続バイトを次のデコード操作に使用します。したがって、GetDecoder と GetEncoder は、ネットワーク伝送やファイル操作に役立ちます。これは、ネットワーク伝送やファイル操作では、完全なデータ ストリームではなくデータのブロックを処理することが多いためです。

GetCharCount メソッドは、バイト シーケンスをデコードした結果生成される文字数を判断し、GetChars メソッドは、実際にデコードを実行します。

このクラスの実装のインスタンスを取得するには、Encoding 実装の GetDecoder メソッドを使用します。

バージョンの考慮事項

継承時の注意 このクラスから継承する場合は、すべてのメンバをオーバーライドする必要があります。

使用例使用例

Decoder を使用して、2 つの異なるバイト配列を 1 つの文字配列に変換するコード例を次に示します。文字のバイトのいずれかが配列にまたがっています。これは、ストリームを読み取るときの System.IO.StreamReader の内部処理と似ています。

Imports System
Imports System.Text

Public Class dec
    
    Public Shared Sub Main()
        ' These bytes in UTF-8 correspond to 3 different Unicode
        ' characters: space (U+0020), # (U+0023), and the biohazard
        ' symbol (U+2623).  Note the biohazard symbol requires 3 bytes
        ' in UTF-8 (hexadecimal e2, 98, a3).  Decoders store state across
        ' multiple calls to GetChars, handling the case when one char
        ' is in multiple byte arrays.
        Dim bytes1 As Byte()
 =  {&H20, &H23, &HE2}
        Dim bytes2 As Byte()
 =  {&H98, &HA3}
        Dim chars(3) As Char
        
        Dim d As Decoder = Encoding.UTF8.GetDecoder()
        Dim charLen As Integer
 = d.GetChars(bytes1, 0, bytes1.Length, chars, 0)
        ' The value of charLen should be 2 now.
        charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen)
        Dim c As Char
        For Each c In  chars
            Console.Write("U+{0:X4}  ", Convert.ToUInt16(c)
 )
        Next c
    End Sub
End Class
using System;
using System.Text;
public class dec
{
    public static void Main()
    {
        // These bytes in UTF-8 correspond to 3 different Unicode
        // characters: space (U+0020), # (U+0023), and the biohazard
        // symbol (U+2623).  Note the biohazard symbol requires 3 bytes
        // in UTF-8 (hexadecimal e2, 98, a3).  Decoders store state
 across
        // multiple calls to GetChars, handling the case when one char
        // is in multiple byte arrays.
        byte[] bytes1 = { 0x20, 0x23, 0xe2 };
        byte[] bytes2 = { 0x98, 0xa3 };
        char[] chars = new char[3];

        Decoder d = Encoding.UTF8.GetDecoder();
        int charLen = d.GetChars(bytes1, 0, bytes1.Length, chars,
 0);
        // The value of charLen should be 2 now.
        charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen);
        foreach(char c in
 chars)
            Console.Write("U+{0:X4}  ", (ushort)c);
    }
}
using namespace System;
using namespace System::Text;
int main()
{
   
   // These bytes in UTF-8 correspond to 3 different Unicode
   // characters: space (U+0020), # (U+0023), and the biohazard
   // symbol (U+2623).  Note the biohazard symbol requires 3 bytes
   // in UTF-8 (hexadecimal e2, 98, a3).  Decoders store state across
   // multiple calls to GetChars, handling the case when one char
   // is in multiple byte arrays.
   array<Byte>^bytes1 = {0x20,0x23,0xe2};
   array<Byte>^bytes2 = {0x98,0xa3};
   array<Char>^chars = gcnew array<Char>(3);
   Decoder^ d = Encoding::UTF8->GetDecoder();
   int charLen = d->GetChars( bytes1, 0, bytes1->Length,
 chars, 0 );
   
   // The value of charLen should be 2 now.
   charLen += d->GetChars( bytes2, 0, bytes2->Length, chars, charLen );
   for ( UInt16 index(0); index < chars->Length; ++index
 )
   {
      Console::Write( "U+{0:X4}  ", static_cast<UInt16>(chars[ index
 ]) );

   }
}

import System.*;
import System.Text.*;

public class Dec
{
    public static void main(String[]
 args)
    {
        // These bytes in UTF-8 correspond to 3 different Unicode
        // characters: space (U+0020), # (U+0023), and the biohazard
        // symbol (U+2623).  Note the biohazard symbol requires 3 bytes
        // in UTF-8 (hexadecimal e2, 98, a3).  Decoders store state
 across
        // multiple calls to GetChars, handling the case when one char
        // is in multiple byte arrays.
        ubyte bytes1[] =  { 0x20, 0x23, 0xE2 };
        ubyte bytes2[] =  { 0x98, 0xA3 };
        char chars[] = new char[3];
        
        Decoder d = Encoding.get_UTF8().GetDecoder();
        int charLen = d.GetChars(bytes1, 0, bytes1.length, chars,
 0);
        
        // The value of charLen should be 2 now.
        charLen += d.GetChars(bytes2, 0, bytes2.length, chars, charLen);

        for (int iCtr = 0; iCtr < chars.length;
 iCtr++) {
            char c = chars[iCtr];
            Console.Write("U+{0}  ",((Int16)c).ToString("X4"));
        }
    } //main
} //Dec
継承階層継承階層
System.Object
  System.Text.Decoder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Decoder コンストラクタ

Decoder クラスの新しいインスタンスを初期化します。

名前空間: System.Text
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説
使用例使用例

次のコード例は、新しい Decoder インスタンスを初期化する 2 つの方法を示しています。

Imports System
Imports System.Text

Class EncoderExample
    
    Public Shared Sub Main()
        ' A Decoder is obtained from an Encoding.
        Dim uni As New UnicodeEncoding()
        Dim dec1 As Decoder = uni.GetDecoder()
        
        ' A more direct technique.
        Dim dec2 As Decoder = Encoding.Unicode.GetDecoder()
        
        ' dec1 and dec2 seem to be the same.
        Console.WriteLine(dec1.ToString())
        Console.WriteLine(dec2.ToString())
        
        ' Note that their hash codes differ.
        Console.WriteLine(dec1.GetHashCode())
        Console.WriteLine(dec2.GetHashCode())
    End Sub
End Class
using System;
using System.Text;

class EncoderExample {
    public static void Main()
 {
        // A Decoder is obtained from an Encoding.
        UnicodeEncoding uni = new UnicodeEncoding();
        Decoder dec1 = uni.GetDecoder();

        // A more direct technique.
        Decoder dec2 = Encoding.Unicode.GetDecoder();

        // dec1 and dec2 seem to be the same.
        Console.WriteLine(dec1.ToString());
        Console.WriteLine(dec2.ToString());

        // Note that their hash codes differ.
        Console.WriteLine(dec1.GetHashCode());
        Console.WriteLine(dec2.GetHashCode());
    }
}
using namespace System;
using namespace System::Text;
int main()
{
   
   // A Decoder is obtained from an Encoding.
   UnicodeEncoding^ uni = gcnew UnicodeEncoding;
   Decoder^ dec1 = uni->GetDecoder();
   
   // A more direct technique.
   Decoder^ dec2 = Encoding::Unicode->GetDecoder();
   
   // dec1 and dec2 seem to be the same.
   Console::WriteLine( dec1 );
   Console::WriteLine( dec2 );
   
   // Note that their hash codes differ.
   Console::WriteLine( dec1->GetHashCode() );
   Console::WriteLine( dec2->GetHashCode() );
}

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Decoder プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ Fallback 現在の Decoder オブジェクトの DecoderFallback オブジェクトを取得または設定します。
パブリック プロパティ FallbackBuffer 現在の Decoder オブジェクトに関連付けられている DecoderFallbackBuffer オブジェクトを取得します。
参照参照

Decoder メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

Decoder メンバ

エンコード済みバイト シーケンスを文字のセットに変換します。

Decoder データ型で公開されるメンバを以下の表に示します。


プロテクト コンストラクタプロテクト コンストラクタ
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Fallback 現在の Decoder オブジェクトの DecoderFallback オブジェクトを取得または設定します。
パブリック プロパティ FallbackBuffer 現在の Decoder オブジェクトに関連付けられている DecoderFallbackBuffer オブジェクトを取得します。
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「decoder」の関連用語

decoderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



decoderのページの著作権

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
社団法人日本映像ソフト協会社団法人日本映像ソフト協会
Copyright © 2000-2026 Japan Video Software Association
日本バーコード日本バーコード
Copyright 1997-2026 (c) Nippon Barcode Co.,Ltd.. All rights are reserved.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2026 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【デコーダ】の記事を利用しております。
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS