プロが教える店舗&オフィスのセキュリティ対策術

文字の容量(サイズ)についての質問です。

掲示板を作る際には文章を書く必要があります。
逆に、投稿する場合もあたりまえですが、文を書きます。
何も掲示板に限ったことではないのですが・・。

先方、ここでは掲示板を作る元の会社(例えばteacupなど)から
文字を書く上で○KB以内で、という指定が出てきます。

この今書いている文章が何キロバイトかどうかを
はかる手段を教えていただきたいのです。
全体としてのサイズはプロパティでわかります。
文章からみたサイズを調べたいのです。
例えば、「おはようございます」は何キロバイトなのか?なのです。
1KB=1000B。1文字は1バイト。「おはようございます」は9バイト。
「お早う御座います」だとしたら、11バイトかな?

ここでの質問として、写真などの画像は除いていただいてけっこうです。

調べたところによると、一般的には、
1KBは約1000Bなので、半角だと1000文字、全角だと500文字らしいですが・・。
リンクをする場合、英字が登場しますので、
これは半角と思いますので、1文字=1バイトかと思いますが・・。
スペースは?

書いた文字について、容量を調べる方法を
ご教授の程、よろしくお願い致します。

A 回答 (4件)

1バイトは「半角」1文字を表す大きさです。


いわゆる、半角英数と、スペース等の一部記号、改行文字などの制御文字が該当します。
正確なものは以下を参考に
http://ja.wikipedia.org/wiki/ASCII

「全角文字」の場合は、1文字は複数バイトになります。何バイトかは、文字コードによって違います

Shift_JIS,EUC-JPの場合は2バイトです。
「helloおはようございます」は5文字x1バイト+9文字x2バイト=23バイトになります。
ISO-2022-JP(いわゆるJIS)の場合、1文字=2バイトに加えて、半角文字との境に3バイトずつ、切り替え制御文字列が入ります
「helloおはようございます」は 5文字x1バイト+漢字用切り替え3バイト+9文字x2バイト+英数切り替え3バイト=29バイトになります。
UTF-8では1文字=3バイトです。
「helloおはようございます」は5文字x1バイト+9文字x3バイト=32バイトになります。

スペースや英数字も、「全角」ならば上の「全角」に従い複数バイト文字になります。
「半角カタカナ」は扱いがややこしく、Shift_JISでは1バイトですが、EUC-JPでは2バイト、UTF-8では3バイトになります。

また、UTF-16では、「半角英数」でも2バイト使います。

調べ方ですが
・文字数を数えて、上の法則に従って手計算。改行文字のことも忘れずに。
・文字数を数えて、全部全角だと考えて2倍(または3倍)
・Javascriptを使ってtextareaの文字数を数えて表示するスクリプトを作る。
例えば、教えて!gooでは、この回答を書いているときに、下に「あとXXX文字入力できます」と表示されています。
・書いた内容をコピーして、メモ帳等のテキストエディタに貼り付けて保存して、そのファイルサイズを調べる。

等となります。

ただ、これが掲示板のバイト数とは一致しないケースもありえます。
(URLがあったら<A HREF=~>と変換した上で数えている、等)

この回答への補足

早速のご回答をありがとうございます。
深く突っ込んでのご回答は嬉しく思っております。
ん~、な~るほど・・
調べ方の部分ですが、
文字数が少ない時には、手作業でも良いのでしょうが、
多くなってくると厳しいです。
そこで
おっしゃるとおり、メモ帳で保存して試してみました。
あと、MS WORD でも試してみました。WORDもテキスト文書と思ったので・・。
メモ帳ではほぼ正確に出ました。
このメモ帳・・利用という方法で調べていきたいと現状思っております。
MS WORD ではダメなんですね。容量が大きくなって表示されていました。
先方の会社(teacup掲示板でもブログでも何でもよいのですが)の
「○○KB以内で」と指定があるとなると、この容量の把握で頭を悩ませていたもので、
ほっとするやら嬉しいやらで
ありがとうございました。

補足日時:2010/05/04 15:00
    • good
    • 1
この回答へのお礼

早速のご回答をありがとうございました。
とても感謝しております。

お礼日時:2010/05/05 17:50

一番簡単な方法として、


テキストファイルにして保存すれば容量が判ります。

この回答への補足

早速のご回答をありがとうございます。
テキストファイルにして保存で容量を調べる・・。
MS WORDはテキスト文書だと思って試してみましたが、
docxがタイトル文字の後に付き、ダメなんですね。容量表示が大きくなってしまった。
メモ帳だと、txtがタイトル文字の後に付き、うまく調べることができました。
結論ですね。
ありがとうございました。
嬉しいです。

補足日時:2010/05/04 15:06
    • good
    • 1
この回答へのお礼

早速のご回答をありがとうございました。
とても感謝しております。

お礼日時:2010/05/05 17:51

S-JISやANISなら半角文字は1バイト、全角文字は2バイト。

スペースにも半角・全角があります。

UNICODEなら半角も全角も2バイトのはず。

それから1KBは1024Byteです(2の10乗バイト)。
「おはようございます」は全角9文字なので18バイト。
「お早う御座います」は全角8文字なので16バイト。
どちらも全角文字ですからね。

高機能テキストエディタには文字数をカウントできるモノがあります。
秀丸とかサクラエディタとか。

この回答への補足

早速のご回答をありがとうございます。
基本的部分から、さらに突っ込んでのご回答は
嬉しく思っています。
高機能テキストエディタ・秀丸(名前程度は聞いたことがありましたが)とか
サクラエディタも新しく知りました。
感謝致します。

補足日時:2010/05/04 14:42
    • good
    • 0
この回答へのお礼

早速のご回答をありがとうございました。
とても感謝しております。

お礼日時:2010/05/05 17:50

単に文字のバイトだけであれば


大文字小文字もありますが 日本語はほとんど全角表示で2バイトです
ひらがなも2バイトです
1バイトは8ビットで表す 2バイトは16ビットで表します
表示させる時は8ドット*8ドットが半角文字に相当します
16ドット*16ドットが全角文字に相当します

この回答への補足

早速のご回答をありがとうございます。
ひらがなも2バイトとは知らなかったです。
漢字は2バイトは知っていましたが・・。
ありがとうございました。
助かりました。

補足日時:2010/05/04 14:37
    • good
    • 0
この回答へのお礼

早速のご回答をありがとうございました。
とても感謝しております。

お礼日時:2010/05/05 17:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています