C#で文字コード(Unicode➝JISコード)の変換を行いたい
解決したいこと
C#で文字コード(Unicode➝JISコード)の変換を行う方法ございましたら、
ご教示いただけないでしょうか。
イメージ)
鯵
Unicode U+9BF5
JIS 3033
U+9BF5から3033に変換する方法が無いか、探しております。
0 likes
C#で文字コード(Unicode➝JISコード)の変換を行う方法ございましたら、
ご教示いただけないでしょうか。
イメージ)
鯵
Unicode U+9BF5
JIS 3033
U+9BF5から3033に変換する方法が無いか、探しております。
Encoding クラスを使用します。
一部の文字コードは Encodingクラスの1つとして定義されていますが、基本的には各エンコードを指定して文字列とバイト配列を変換します。
Unicode の場合バイトオーダーが逆転します。
JIS は前後に JIS コードを示すバイト配列が3バイトずつ付与されるようです。
下記を利用して、Unicode 配列 → 文字列 → JIS 配列を行えばよいと思います。
// Unicode
byte[] unicodeArray = Encoding.Unicode.GetBytes("鯵"); // 0xF5, 0x9B
string unicodeString = Encoding.Unicode.GetString(unicodeArray); // "鯵"
// JIS
byte[] jisArray = Encoding.GetEncoding(50220).GetBytes("鯵") // 0x1B, 0x24, 0x42, 0x30, 0x33, 0x1B, 0x28, 0x42
string jisString = Encoding.GetEncoding(50220).GetString(jisArray); // "鯵"