HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0504
tantam1バイトって何文字分ですか?4解決


tantam

リンク

2019/5/4(Sat) 19:33:40|NO.87242

ものすごく単純な質問ですみません

sdimのパラメーターで文字数を指定すると思いますが、これ「バイト単位」ですよね
1バイトは何文字分、逆に1文字は何バイトになるのでしょうか?

「半角文字が1バイトで、平仮名や漢字は2バイトになる」というサイトもありましたが、HSP関係のないサイトなので当てはまるのかも分かりません…
sdimの文字数指定は最小値が64バイトとのこと
もし64バイトだとすると半角64文字分、全角だと32文字分てことでいいのでしょうか?
それとも1文字当たりの量、たとえば「一」は1バイトだけど「轟」みたいな文字は3バイトくらいになる、とか一定ではないのでしょうか?

いろいろググッても出てこなかったもので、よろしく教えてください



この記事に返信する


MillkeyStars

リンク

2019/5/4(Sat) 20:55:19|NO.87243

Unicode を使用していない限り、1バイト文字と2バイト文字の二種類しかありません。
(日本語の場合)(元々 2バイトの概念がない言語の場合、1バイトのみになります。)

1バイト文字 : a 〜 z 0 〜 9 などの半角文字
2バイト文字 : a〜z 0〜9 などの全角文字

>>もし64バイトだとすると半角64文字分、全角だと32文字分てことでいいのでしょうか?
その認識であっています。

ただし、文字列のルールで、終端文字(NULL == 0) を含めたサイズとなるので、sdim a,64 の場合、全角 31文字・半角 63文字が最大となります。



KA

リンク

2019/5/4(Sat) 21:14:20|NO.87244

文字を「符号」として表すのに必要なバイト数で異なります。

昔はアルファベットのみ使ったので1バイト(256種類)で
足りましたが、それ以外の文字(漢字など)を使おうとすると
足りません。そもそも漢字などは、1バイト用の表示スペース
では視認性が悪かったのです。

仕方なく、2バイトを使って倍の表示スペースで表現する方法
を言語別に考えましたが、2バイトを考慮していないOSやソ
フトでは、当然「文字化け」が起こりました。

また、全ての言語で使用される「文字の種類」は2バイトでも
足りません(主に、簡体字・繁体字・新字体・旧字体等、漢字
圏の影響です)。

なんとか共通の符号で表そうと、現在主流のユニコードが考案
されましたが、1バイトで表現出来る文字種を組み合わせたの
で、当然ながら2バイト以上の符号が必要となりました。

---------------------------------------------------------

結局は「文字コード」の扱いで、必要なバイト数は変わります。



tantam

リンク

2019/5/4(Sat) 21:37:03|NO.87245

MillkeyStarsさん、KAさん、早いお返事ありがとうございます!

具体的に使用する予定の文字を書いた方がよかったですね、失礼しました
英語や数字は使いますが、日本語以外の外国語とかは使わないです
日本のよくある地名や人名の文字を使います
つまり「特に指定や限定や特殊というもののない、日本語の日常的に使われる標準的な文字」です
なのでMillkeyStarsさんの言われることで、たぶん問題ないと思います
外国語とか学術記号とか使う場合、KAさんの言われるような感じなんでしょうね

文字を表示させるだけでも、いろいろあるんですね〜
分かりやすく教えていただき、ありがとうございました!



KA

リンク

2019/5/5(Sun) 18:22:03|NO.87249

>>日本語の日常的に使われる標準的な文字
その標準的な文字も「複数の文字コード」が有ります。

>>MillkeyStarsさんの言われることで、たぶん問題ないと思います
自作のテキストファイルを読み書きする前提なら問題は有りません。



ONION software Copyright 1997-2021(c) All rights reserved.