文字コード掲示板


一括購読


No.229投稿日時:2004/11/25(木) 12:05    <親記事>
投稿者:bon

SJIS文字コードから文字への変換

はじめまして。bonと申します。
現在C#を使って開発しているのですが、SJISの文字コードから文字への
変換で悩んでいます。

単純に、文字コードをchar型にキャストしたのですが、文字コードがUniCode
の文字コードとして認識されてしまうようです。

どなたか、ご存知の方がいらっしゃいましたら、ご教授ください。

よろしくお願いいたします。


No.231投稿日時:2004/11/26(金) 01:34    <↑親記事:No.229>
投稿者:森山 将之

Re: SJIS文字コードから文字への変換

シフトJIS の文字コード (通常、数値型として扱われる) を、文字に変換したいとの事ですが、使用する言語で、「文字」をどのように扱っているのかという事を、まず始めに調べるべきでしょう。

C# での文字型はどうなっているか調べてみると次のようになっています。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vclrfc...

C# の文字型である char 型は、Unicode の値を格納しなければならない事が分ります。
この事から、たぶん整数型などの数値として保持しているであろうシフトJIS の文字コード値を、Unicode の値に変換してから char 型に代入する必要があることがわかります。
C# で、シフトJIS の文字列と Unicode の文字列の変換を行うためには、Encode クラスを使用するようです。

.NET Framework 開発者ガイド
コード ページのエンコーディング サポート
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpco...

エンコーディング クラスの使用
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconusingunicodeencoding.asp?FRAME=true...

とりあえず、Encoding.GetBytes のリンクをクリック

.NET Framework クラス ライブラリ
Encoding.GetBytes メソッド
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfS...

メソッドのリンクをクリック

.NET Framework クラス ライブラリ
Encoding メソッド
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfS...

conver をクリック

.NET Framework クラス ライブラリ
Encoding.Convert メソッド
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemtextencodingclassconverttopic.a...

ここまでくれば、あとは、整数型で表されているであろうシフトJISの文字コード値を自前で byte 型の配列に変換して、上記、Encoding.Convert メソッドで変換してやれば OK でしょう。


No.233投稿日時:2004/11/26(金) 12:55    <↑親記事:No.231>
投稿者:森山 将之

Encodingメソッド

.NET Framework クラス ライブラリ
Encoding メンバ

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfs...

こちらを見ると、GetChars や GetString などがあるので、Unicode への変換はこちらを使ったほうが良いかもしれません。



No.229投稿日時:2004/11/25(木) 12:05    <親記事>
投稿者:bon

SJIS文字コードから文字への変換

はじめまして。bonと申します。
現在C#を使って開発しているのですが、SJISの文字コードから文字への
変換で悩んでいます。

単純に、文字コードをchar型にキャストしたのですが、文字コードがUniCode
の文字コードとして認識されてしまうようです。

どなたか、ご存知の方がいらっしゃいましたら、ご教授ください。

よろしくお願いいたします。


No.231投稿日時:2004/11/26(金) 01:34    <↑親記事:No.229>
投稿者:森山 将之

Re: SJIS文字コードから文字への変換

シフトJIS の文字コード (通常、数値型として扱われる) を、文字に変換したいとの事ですが、使用する言語で、「文字」をどのように扱っているのかという事を、まず始めに調べるべきでしょう。

C# での文字型はどうなっているか調べてみると次のようになっています。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vclrfc...

C# の文字型である char 型は、Unicode の値を格納しなければならない事が分ります。
この事から、たぶん整数型などの数値として保持しているであろうシフトJIS の文字コード値を、Unicode の値に変換してから char 型に代入する必要があることがわかります。
C# で、シフトJIS の文字列と Unicode の文字列の変換を行うためには、Encode クラスを使用するようです。

.NET Framework 開発者ガイド
コード ページのエンコーディング サポート
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpco...

エンコーディング クラスの使用
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconusingunicodeencoding.asp?FRAME=true...

とりあえず、Encoding.GetBytes のリンクをクリック

.NET Framework クラス ライブラリ
Encoding.GetBytes メソッド
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfS...

メソッドのリンクをクリック

.NET Framework クラス ライブラリ
Encoding メソッド
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfS...

conver をクリック

.NET Framework クラス ライブラリ
Encoding.Convert メソッド
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemtextencodingclassconverttopic.a...

ここまでくれば、あとは、整数型で表されているであろうシフトJISの文字コード値を自前で byte 型の配列に変換して、上記、Encoding.Convert メソッドで変換してやれば OK でしょう。


No.233投稿日時:2004/11/26(金) 12:55    <↑親記事:No.231>
投稿者:森山 将之

Encodingメソッド

.NET Framework クラス ライブラリ
Encoding メンバ

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfs...

こちらを見ると、GetChars や GetString などがあるので、Unicode への変換はこちらを使ったほうが良いかもしれません。


Script : Sylpheed 1.24
Modified by MORIYAMA Masayuki