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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
- 数学 線形代数の対称行列についての問題がわからないです。 2 2023/01/08 14:59
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) エクセルでA列セル内で折り返すことなく、文字列を、B列C列・・・側に一行に 2 2022/07/23 02:02
- C言語・C++・C# C言語について質問です。 以下のような結果を出すためにはどのようなコードが良いですか?サンプルコード 3 2022/11/01 16:19
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- Excel(エクセル) エクセルのマクロを教えてください。 1 2022/03/30 09:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セル内の文字列が日本語か英語...
-
EBCDIC⇒SJIS変換の方法
-
友人とのラインで 「~MBと書く...
-
S-JIS → JIS コード変換するには
-
「彡」って文字はなんという文...
-
ExcelVBA実行後に時々落ちる
-
VS 2008(VB.NET)
-
英数字を含む文字列(0-9,A-Z)...
-
数字5桁文字コード?
-
accessでJISコードを求める関数
-
VB6のコードをVB.NETに移したい...
-
ExcelからVBAでWordを操作する...
-
特殊記号
-
COBOLによる全角・半角混...
-
EBCDICをASCIIに変換したい
-
byte配列の内容をstringにコピ...
-
ASCIIコードの文字化け??
-
2バイト文字をJEFからSJISに変...
-
DOUBLE型の16進HEX文字列変換に...
-
コレクションを配列にして利用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
ExcelVBA実行後に時々落ちる
-
ふりがなをアルファベット化す...
-
Excelマクロにて30分単位の計算...
-
英数字を含む文字列(0-9,A-Z)...
-
Symfowareでのデータ型変換につ...
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
フォームのコントロールのバッ...
-
数字5桁文字コード?
-
バイナリデータ→ASCII 変換プ...
-
2バイト文字をJEFからSJISに変...
-
CString ←→ BSTRの変換について
-
VBScript ASC関数:文字エンコ...
-
入力した文字を全て自動で全角...
おすすめ情報