
下記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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
C言語で16進数のunicodeを文字...
-
「彡」って文字はなんという文...
-
EBCDICをASCIIに変換したい
-
Symfowareでのデータ型変換につ...
-
「髙(はしごたか)」を文字コー...
-
VBScript ASC関数:文字エンコ...
-
VS 2008(VB.NET)
-
VisualBasic6からVB2005に移行...
-
RubyでUTF8のコード値を文字に...
-
sedで日本語の置換方法について
-
2バイト文字をJEFからSJISに変...
-
pythonでのsamtoolsによるbamか...
-
VB.NETのコンソールアプリケー...
-
フォームのコントロールのバッ...
-
文字コードshift-jisへの変換に...
-
PL/SQLでSJISの文字コードを取...
-
DOHCとOHC
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
std::stringからLPCWSTR型への変換
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
VS 2008(VB.NET)
-
COBOLによる全角・半角混...
-
ふりがなをアルファベット化す...
-
Symfowareでのデータ型変換につ...
-
RubyでUTF8のコード値を文字に...
-
フォームのコントロールのバッ...
-
%fと%gについて
-
ExcelVBA実行後に時々落ちる
-
JIS → S-JIS コード変換するには
-
英数字を含む文字列(0-9,A-Z)...
-
sedで日本語の置換方法について
-
byte配列の内容をstringにコピ...
-
数字5桁文字コード?
-
accessでJISコードを求める関数
-
コード変換について
-
「髙(はしごたか)」を文字コー...
おすすめ情報