
下記URLのページ中に、
http://www.tohoho-web.com/wwwkanji.htm
「各コード間の変換アルゴリズム」
という項目があるのですが、
その下の、
「漢字コードマップ」を見ても、
JIS⇒S-JISの変換アルゴリズムがよくわかりません。
自分でももう一度考えて見ますが、
参考にあるようなサイト、
もしくは説明?してもらえると助かります。
No.4ベストアンサー
- 回答日時:
#3です。
まず、参考URLのHPを見てください。
これをみれば、同文字に対するコード比較ができます。
とりあえず、質問者様が指定されているHPのアルゴリズムを
忘れて、以下の事を考えて見てください。
(1){0x2120, 0x2130, 0x2220, 0x2230, 0x2420, 0x2430}
(2){0x813F, 0x814F, 0x819E, 0x81AE, 0x829E, 0x82AE}
単純に上記の(抜粋ですが)テーブル(1)から(2)に変換する
アルゴリズムを作成する場合どうしますか?
上位1バイトに着目して考えると、テーブル(1)の上位バイトが
2増加した時に、テーブル(2)の上位バイトが1増加していますよね。
c1 % 2の判断は、この処理と言えます。
参考URL:http://ash.jp/code/codetbl2.htm
No.5
- 回答日時:
シフトJISがなんでこうなのかというと、2バイトのコードのままというのは元のJISのエンコーディングと同じですが、1バイト目を 0x81~0x9f, 0xe0~0xfc の間の値になるように無理矢理詰め込もうとしたためにこうなったんです。
(それで複雑な計算が必要になった)1バイト目をこの値になるようにした理由は、それ以前のPCが JIS X 0201 (ASCIIの"\"記号を"¥"記号にしたものとカタカナ)を使っていたからで、それが 0x00~0x7f, 0xa0~0xdf を使っていて、これと漢字とを混在させたかったためだと思います。
ただこのコードは一部の会社だけで決めてしまったものなので、あまり評判はよくなかったように思います。(同じ文字に2つのコードが振られているとか、コードによって幅が変わるという仕様ではないのに事実上半角全角というものが存在するとか)。
参考URL:http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%95% …
No.3
- 回答日時:
制御系の技術者です。
私には漢字どうこうは、良くわかりませんが、
アルゴリズムは理解できます。
まず、なにがわからないのでしょうか?
指摘されているHPを見ると表中緑の部分から赤い部分への
ごく単純なコード変換に見えますが。
とりあえずは、
1.JISコード表とS-JISのコード表を見比べて見ましょう。
2.同じ漢字がどのコードになっているか見てみましょう。
3.その同じ漢字のJISコードをHP記載のアルゴリズムで
変換してみましょう。(手計算でできますよね)
4.同じ漢字のS-JISコードになっていませんか?
この回答への補足
一行目の、
if (c1 % 2) {
ですが、
% 2で最下位のビットが1か判断してますよね?
なんでそーゆう考え?になるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# S-JIS → JIS コード変換するには 3 2023/02/09 23:55
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- JavaScript ブックマークレットについて 2 2022/10/09 11:48
- その他(プログラミング・Web制作) プログラミング能力とアルゴリズム能力って違うのでしょうか? プログラミングの能力の一部にアルゴリズム 10 2023/03/31 14:34
- その他(Microsoft Office) Microsoft IME 一発で変換できない言葉がある 3 2022/07/19 19:29
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- その他(プログラミング・Web制作) プログラミングの能力とアルゴリズムの能力は別物だと言われたのですが、これは本当ですか? プログラミン 1 2023/03/09 02:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
std::stringからLPCWSTR型への変換
-
ふりがなをアルファベット化す...
-
「彡」って文字はなんという文...
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
16進数で表示
-
数千の単語の並び替えについて。
-
accessでJISコードを求める関数
-
Perlコードを、自動的にPHPコー...
-
Excelマクロにて30分単位の計算...
-
EBCDIC⇒SJIS変換の方法
-
英数字を含む文字列(0-9,A-Z)...
-
Symfowareでのデータ型変換につ...
-
10進数→2進数への変換
-
VBでバイナリデータについて。
-
S-JIS → JIS コード変換するには
-
pbmの表示の仕方。
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
wordで均等割り付けをするとき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ふりがなをアルファベット化す...
-
「彡」って文字はなんという文...
-
VS 2008(VB.NET)
-
フォームのコントロールのバッ...
-
ExcelVBA実行後に時々落ちる
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
Excelマクロにて30分単位の計算...
-
Symfowareでのデータ型変換につ...
-
2バイト文字をJEFからSJISに変...
-
「髙(はしごたか)」を文字コー...
-
S-JIS → JIS コード変換するには
-
%fと%gについて
-
PL/SQLでSJISの文字コードを取...
-
JIS → S-JIS コード変換するには
-
RubyでUTF8のコード値を文字に...
-
英数字を含む文字列(0-9,A-Z)...
おすすめ情報