
いつもお世話になっております。
データベース上に持っているコードの桁数を拡張する必要に迫られています。
本来であれば、データベースの桁数を増やして関連するプログラムを見直して、という流れになるのですが、
使用している画面や帳票の数が多く、レイアウトの調整が要るのですが、殆どは圧縮されたコードのままでも問題ないため、桁数を圧縮する何等かの方法はないかなと考え初めました。
数字だけであれば、10進→16進に変換すれば桁数が圧縮できる可能性があると思うのですが、英数が混じる、いわば36進に相当する文字をそれ以上に圧縮するなんてことは可能なのでしょうか?
No.5ベストアンサー
- 回答日時:
36 進数 11 桁のデータ量を、
x 進数 8 桁で表すなら
36^11 = x^8
x = 36^(11/8) = 138.01 ...
139 個以上の文字を表すためには、
ASCII 由来の図形文字である 21-FE の 94 個では足りないので、
別に 45 個が必要になります。
もし文字コードが Unicode ならば、
ラテン補助文字である U+00C0-00FF の範囲で探しましょう。
ただし U+00D7 の様な記号は除外すべきかも
もし文字コードが JIS X 0201 ならば
カナ文字である A1-DD の範囲で探しましょう。
ただし A7 の様な小書きは除外すべきかも
参考)
https://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E …
https://ja.wikipedia.org/wiki/JIS_X_0201
余談ではありますが、
ご質問のような場合ですと、データベースに拡張分の項目を追加して、必要な場合だけ既存分と拡張分を結合したコード体系にすべきかと考えます。
No.3
- 回答日時:
rubyのカテゴリで質問されていますが、rubyでの実装を想定されているのでしょうか。
コメントありがとうございました。
すみません。間違えていました。プログラミング全般のつもりだったのですが、無意識のうちにカテゴリが違っていました。
実装したいのは、レガシー言語のRPGです。若い人は知らないと思います。
rubyでも難しければ、絶対に無理そうなことは判ってきました。
No.2
- 回答日時:
>英数が混じる、いわば36進に相当する文字をそれ以上に圧縮するなんてことは可能なのでしょうか?
ASCIIの0x20~0x7Fを使用した96進数という考え方がありますが、
0x20(空白)と0x7F(DEL)は、使用しないで、94進数なら印字可能文字で構成できます。
36進数の何文字を何文字に圧縮したいのでしょうか。
それによって94進数にして効果があるかどうかがきまります。
コメントありがとうございました。
変換サイトを見つけて入力してみました。
11桁を8桁に変換したいのですが、文字数が足りないような感じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
「彡」って文字はなんという文...
-
フォームのコントロールのバッ...
-
ふりがなをアルファベット化す...
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ExcelVBA実行後に時々落ちる
-
%fと%gについて
-
latin-1 (ISO-8859-1)への変換
-
VS 2008(VB.NET)
-
CSVをVB(input)で読み込んだ場...
-
C → C# への変換で書き方がわか...
-
byte配列の内容をstringにコピ...
-
cgiのログをcsvとして出力、...
-
文字コードshift-jisへの変換に...
-
VB.NET TextBoxへの入力をキャ...
-
数値のパック10進数の変換に...
-
画像ファイル等→16進
-
EBCDICへの変換
-
COBOLによる全角・半角混...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ふりがなをアルファベット化す...
-
VS 2008(VB.NET)
-
「彡」って文字はなんという文...
-
2バイト文字をJEFからSJISに変...
-
JIS → S-JIS コード変換するには
-
COBOLによる全角・半角混...
-
ExcelVBA実行後に時々落ちる
-
フォームのコントロールのバッ...
-
sedで日本語の置換方法について
-
Symfowareでのデータ型変換につ...
-
数値のパック10進数の変換に...
-
S-JIS → JIS コード変換するには
-
RubyでUTF8のコード値を文字に...
-
英数字を含む文字列(0-9,A-Z)...
-
%fと%gについて
-
CString ←→ BSTRの変換について
-
C#でバイナリデータをテキスト...
おすすめ情報