文字数の「おおよそ」とは?No.28834
おじさん さん 10/08/30 15:42
 
ファイル全体or選択範囲内の文字数をステータスバーに表示する機能は大変重宝して
おります。

さて、文字数の表示は「おおよそ」であると記載されていますが、どのような場合、
実際の文字数と差が出るのでしょうか?

全角文字や改行コードを何文字とカウントするかは設定で決められますので、それ以
外のどのようなケースで、実際の文字数と違いが発生しうるのでしょうか?

お忙しいところ恐縮ですが、よろしくご教示いただきたく、お願いいたします。

秀丸V8.01
WinXPSP3

#なお、さらに欲深いことを言わせていただければ、「改行コードの文字数をファイ
ルの改行コードの指定に合わせる」というオプションがあるとうれしいです。
つまり「ファイルの改行コード指定がCR/LFのときは2文字、CRまたはLFのときは1文
字とする」という設定です。
現状では、ファイルの改行コードの指定によらず、常に2or1or0文字としか設定でき
ません。

[ ]
RE:28834 文字数の「おおよそ」とは?No.28835
秀丸担当 さん 10/08/30 16:45
 

>ファイル全体or選択範囲内の文字数をステータスバーに表示する機能は大変重宝して
>おります。
>
>さて、文字数の表示は「おおよそ」であると記載されていますが、どのような場合、
>実際の文字数と差が出るのでしょうか?

V7.xxまでは、半角文字は1文字、全角文字は2文字、改行は2文字としての計算
で固定でした。Unicode独自の文字が含まれる場合は4文字と計算されていました。

そのため「おおよそ」という名前にしていましたが、V8.00以降でもその表現が引
き継がれています。
V8.00以降では詳しく指定できるので「おおよそ」の表現はいらないかもしれない
です。

何をもってして実際の文字数と解釈するかによって、期待する数とは違うかもし
れないです。
例えばバイト数を期待する場合、UTF-8では全角/半角に関わらず1文字が1,2,
3,4バイトのいずれかにエンコードされますが、V8以降でもUTF-8でのバイト数
は知ることはできないです。
そういった意味では「おおよそ」の表現はまだ必要かもしれません。


>#なお、さらに欲深いことを言わせていただければ、「改行コードの文字数をファイ
>ルの改行コードの指定に合わせる」というオプションがあるとうれしいです。
>つまり「ファイルの改行コード指定がCR/LFのときは2文字、CRまたはLFのときは1文
>字とする」という設定です。
>現状では、ファイルの改行コードの指定によらず、常に2or1or0文字としか設定でき
>ません。

改行コードが2か1かを意識する場合はバイト数を知りたい場合だと思います。
その場合、前述のようにUTF-8の場合はバイト数を知ることはできなかったりする
ので、もしやるとしたらそういったことにも対応が必要かもしれません。(他に
はUTF-16やEUCでも)
今後のネタとして参考にさせていただきます。

[ ]
RE:28835 文字数の「おおよそ」とは?No.28836
おじさん さん 10/08/30 18:27
 
早速のお返事ありがとうございます。

(1)文字数は、設定にしたがって正しくカウントされる。

(2)バイト数は、S-JISなら設定次第で正確に出せるが、
 それ以外のコードの場合は、現行の設定区分では、
  全角文字が2バイトとは限らない(UTF)、
  半角の英数とカナでバイト数が異なる(EUC)、
  ページ切替シーケンス(いわゆるKI/KO)をカウントできない(JIS)
  EOFやBOMをカウントできない
 などで、正確な値は出せない。

ということでしょうか。

「文字数」か「バイト数」かの選択にして、
バイト数の場合にはサブオプションはなしで、現状の文字コード・改行コードで保存
したときのバイト数、
ということでも良いかもしれませんね。
今後のv.up時の参考にしていただければ幸いです。

お忙しい中、ありがとうございました。

[ ]
RE:28836 文字数の「おおよそ」とは?No.28839
秀丸担当 さん 10/08/31 09:52
 

>(1)文字数は、設定にしたがって正しくカウントされる。
>
>(2)バイト数は、S-JISなら設定次第で正確に出せるが、
> それ以外のコードの場合は、現行の設定区分では、
>  全角文字が2バイトとは限らない(UTF)、
>  半角の英数とカナでバイト数が異なる(EUC)、
>  ページ切替シーケンス(いわゆるKI/KO)をカウントできない(JIS)
>  EOFやBOMをカウントできない
> などで、正確な値は出せない。
>
>ということでしょうか。

はい。
全くその通りです。

>「文字数」か「バイト数」かの選択にして、
>バイト数の場合にはサブオプションはなしで、現状の文字コード・改行コードで保存
>したときのバイト数、
>ということでも良いかもしれませんね。
>今後のv.up時の参考にしていただければ幸いです。

そうですね。
もしやるとしたらバイト数という単独の指定ができればいいかもしれません。
今後の参考にさせていただきます。

[ ]