- - PR -
JIS変換とSJIS変換の方法がわかりません
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-08 16:08
入門者の為、わかりませんでした。
C#で下記の変換方法を教えてください。 Unicode→JIS変換とUnicode→SJIS変換。 以上、よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-12-08 16:24
ここが参考になるかと。
http://dobon.net/vb/dotnet/string/getencoding.html | ||||||||||||
|
投稿日時: 2004-12-08 16:44
burton999さん、回答ありがとうございます。
ただ、言葉が足りませんでしたが、 「System.Text.Encoding.GetEncoding(932).GetBytes(str)」までは、 出来ていたのですが、byte型にセットした後にstring型にセットしたいのです。 元のバイト数を変えずに変換する。 上記でわかりますか?(説明が下手な為) 以上、お願いします。 | ||||||||||||
|
投稿日時: 2004-12-08 17:18
String クラス(http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemStringClassTopic.asp) に
「string型にセット」だとすると、せっかくUnicode→JIS(またはシフトJIS)変換したのに、更にUnicodeへ再変換することになってしまうことを意味しますが、それでいいのですか?
文字コード変換をしたのにバイト数を変えないとは?? それっていったい……。 [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-12-08 17:20 ] | ||||||||||||
|
投稿日時: 2004-12-08 17:29
で、以上はStringクラス(string型)の話ですが……。
もしかして、テキストファイルにJISコードやShift_JISコードで出力したい、という話ですか? # そうだとすると、質問が省略しすぎ……。 その場合は、たとえばSystem.IO.StreamReaderやSystem.IO.StreamWriterの、コンストラクタに Encodingクラスを指定するものを使うとか。 [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-12-08 17:34 ] | ||||||||||||
|
投稿日時: 2004-12-08 17:55
ぢゃん♪さん、回答ありがとうございます。
省略しすぎてますね。ごめんなさい。 VB(16Bit版)からの移行で、データをRS232Cで通信をしています。 よって、バイト数を変えずにってことです。 ”ロロノア・ゾロ”(14Byte)→”%m%m%N%"!&%>%m”(14Byte)と なるようにしたいのです。 以上、お願いします。 | ||||||||||||
|
投稿日時: 2004-12-08 18:59
多分、なぜ「よってバイト数云々」になるのかだれもわからないと思います… Unicodeとの間で変換したいのは、何のためですか? 「.NET での文字列はUnicodeだから」とかいう理由ではないですか? そもそも文字コードを変えるって事は、バイト列を変えるって事です。バイト数が変わる可能性があるのも当然です。 単に.NETで扱える文字列にしたいって話なら、普通はバイト数が同じとか気にする必要(意味)はありませんよ(というかそもそも普通無理ですし)。 | ||||||||||||
|
投稿日時: 2004-12-08 20:17
「abcd(unicodeで8バイト)」→「abcd(jisで4バイト)」とバイト数は変わりますが いいんですよね?あと、jisの場合切り替え制御文字とかも入りますし。
|