
No.3ベストアンサー
- 回答日時:
要するに、JISからShift-JISへの変換ですね。
http://www.tohoho-web.com/wwwkanji.htm
---ここから---
#include <stdio.h>
void jis2sjis(char *dst, char *src)
{
while (src[0] && src[1]) {
int c1 = ((unsigned char *)src)[0];
int c2 = ((unsigned char *)src)[1];
if (c1 % 2) {
c1 = ((c1 + 1) / 2) + 0x70;
c2 = c2 + 0x1f;
} else {
c1 = (c1 / 2) + 0x70;
c2 = c2 + 0x7d;
}
if (c1 >= 0xa0) { c1 = c1 + 0x40; }
if (c2 >= 0x7f) { c2 = c2 + 1; }
*dst++ = c1;
*dst++ = c2;
src += 2;
}
*dst = '\0';
}
int main(void)
{
char src[] = "3t<02q<R";
char dst[9];
jis2sjis(dst, src);
printf("src=%s\ndst=%s\n", src, dst);
}
---ここまで---
こんなとこかな。
mtaka2様
ソースコードありがとうございました。
意図した結果を得られる事ができて、大変感謝しております。
ご教授いただいた、ソードとHPを参考に勉強させていただきます。
ありがとうございました。
No.2
- 回答日時:
「変換する?」とはどういう意味ででしょうか?
”株式会社”という文字列を表示したいと言う事であれば、表示する為の関数に併せた文字コードに変換すれば良いです。
例えば昔の開発環境であればシフトJISに、またはunicode等に変換する場合もあります。
[0x3374(株)]は調べてみるとJISコードのようですが、JISコードは漢字コードとASCII文字とを区別するために、「漢字IN」「漢字OUT」を持っていたと思います。
与えられる入力データというのは、漢字コード部分のみのデータが与えられるのでしょうか?
参考URL:http://www.unixuser.org/~euske/doc/kanjicode/ind …
この回答への補足
hiro_knigh様
早速のご回答ありがとうございます。
説明が不十分でした・・・
”3t<02q<R”という文字列を”株式会社”という文字列に変換したいのです。
char* in = "3t<02q<R";
char* out = asciiTosjis(in);
という説明で通じますでしょうか?
説明が下手ですみません・・・
No.1
- 回答日時:
>”3t<02q<R”という文字列が与えられた時
これ、前提が間違ってませんか?
与えられている「データ」は「文字列」ではなく「バイナリーデータ」では?
「0x33, 0x74, 0x3c, 0x30, 0x32, 0x71, 0x3c, 0x52」
いう「バイナリーデータ」を「全部ASCIIコードの体系」で表示すると質問の通り「3t<02q<R」となります。
しかし、「2Byte文字である、JISコードの体系」として認識すれば、「0x3374, 0x3030, 0x3271, 0x3c52」でそのまま「株式会社」という文字コードとして扱います。
「JISコード」の体系では表示できないので「Shift-JIS」等に変化するというのならまた別ですが。
この回答への補足
SilverThaw様
前提は間違っていません。
テキストファイルに”3t<02q<R”という文字列を記述します。
素人向けの暗号化でしょう。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
COBOLによる全角・半角混...
-
accessでJISコードを求める関数
-
セル内の文字列が日本語か英語...
-
ExcelVBA実行後に時々落ちる
-
ふりがなをアルファベット化す...
-
%fと%gについて
-
sedで日本語の置換方法について
-
「彡」って文字はなんという文...
-
文字コード(たぶんユニコード)
-
Symfowareでのデータ型変換につ...
-
絶対パスを相対パスに
-
latin-1 (ISO-8859-1)への変換
-
FFT後の振幅値
-
URLのUTF-8からShift-JISへのデ...
-
Excel vba で1と10を正確に判断...
-
VBScript ASC関数:文字エンコ...
-
COBOLのデータ型
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
「彡」って文字はなんという文...
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ふりがなをアルファベット化す...
-
sedで日本語の置換方法について
-
Symfowareでのデータ型変換につ...
-
COBOLによる全角・半角混...
-
VS 2008(VB.NET)
-
フォームのコントロールのバッ...
-
%fと%gについて
-
JIS → S-JIS コード変換するには
-
RubyでUTF8のコード値を文字に...
-
英数字を含む文字列(0-9,A-Z)...
-
2バイト文字をJEFからSJISに変...
-
CASLⅡ 文字データから数値デー...
-
ExcelVBA実行後に時々落ちる
-
latin-1 (ISO-8859-1)への変換
-
S-JIS → JIS コード変換するには
-
入力した文字を全て自動で全角...
おすすめ情報