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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
std::stringからLPCWSTR型への変換
-
ExcelVBA実行後に時々落ちる
-
数字5桁文字コード?
-
C++でEUC-JPをSJISに変換したい。
-
英数字を含む文字列(0-9,A-Z)...
-
ふりがなをアルファベット化す...
-
VS 2008(VB.NET)
-
error C2679 がとれません><
-
latin-1 (ISO-8859-1)への変換
-
「髙(はしごたか)」を文字コー...
-
%fと%gについて
-
画像データ(png)をcsvファイル...
-
ASCIIコードの文字列化
-
VB2005で単精度実数を変換する...
-
漢字をUnicodeに変換する方法を...
-
Symfowareでのデータ型変換につ...
-
2バイト文字をJEFからSJISに変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「彡」って文字はなんという文...
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ExcelVBA実行後に時々落ちる
-
VS 2008(VB.NET)
-
Symfowareでのデータ型変換につ...
-
2バイト文字をJEFからSJISに変...
-
COBOLによる全角・半角混...
-
VB.NETのコンソールアプリケー...
-
フォームのコントロールのバッ...
-
ふりがなをアルファベット化す...
-
sedで日本語の置換方法について
-
PL/SQLでSJISの文字コードを取...
-
数字5桁文字コード?
-
画像データ(png)をcsvファイル...
-
CString ←→ BSTRの変換について
-
英数字を含む文字列(0-9,A-Z)...
-
error C2679 がとれません><
-
RubyでUTF8のコード値を文字に...
おすすめ情報