IEで『全角&半角混在の文字変数』の指定バイト目からデータを取り出す方法

[上に] [前に] [次に]
やっこちゃん 2000/01/27(木) 21:22:50
 お初に質問します。

全角と半角文字が混在したデータで、
指定バイト目からの文字を
指定サイズ分取り出したいのです。

例)
   var Hensuu = "aaaaあああbbbc";

        Hensuu 変数の 0から数えて10バイト目のデータ4バイトを
    取り出すと 『bbbc』 となりますが、

    Toridashi = Hensuu.substr(10,4);
 
     とやると  取り出されるのは
     10バイト目ではなく、10文字目の『c』のみです。

    IEは全角、半角共に 1文字と換算してしまうので、
    こうなるということ、わかりましたが、
    
    10バイト目を取り出すには、charCodeAt で
    文字コードを1文字単位で調べるしか方法は
    ないのでしょうか。。。。。

     よろしくお願いします。
    

三原克大 [E-Mail] 2000/01/30(日) 13:37:04
はい。 charCodeAt() しかありません。

IE 4 以降ならびに Netscape 4.06 以降では文字列は Unicode と決まりました。JavaScript と JScript の互換性を保つべく作られた ECMAScript (ECMA-262) でもそう定められています。だから、アルファベットも漢字も一文字は一文字と勘定されるのです。

世界の流れとしては、IE 4 だけが特別なのではなく、かつてのブラウザが実用に耐えうる国際化がなされていなかったとみなされているわけです。

なお、charCodeAt() で取り出せるコードも Unicode なので、既存の JIS X208 の知識は通用しません。この点も勘案してください。

[上に] [前に] [次に]