• ベストアンサー

シフトJISの2バイト文字を知る

kazu-kunの回答

  • kazu-kun
  • ベストアンサー率31% (72/232)
回答No.1

シフトJISの1バイト目はASCIIと区別がつくので良いですが、2バイト目はASCIIと区別がつかないので、文字列の先頭から1バイトずつ見ていかないと、どこがSJISの2バイト文字かを判定することはできないよーな気がします。 #2バイト組で見ていけばOKかもしれませんが。

A__
質問者

お礼

ありがとうございます。 substr($line, $strlen-1, 2) というふうに2文字ずつなんですね。

関連するQ&A

  • シフトJIS 2バイト字の範囲

    シフトJISの2バイト文字の範囲は 0x40~0x7e と 0x80~0xfc と 0x40~0xfc のどっちですか? どちらの情報も見たことがあるんです。 シフトJISの文字をマッチングさせる場合、 ここでは見やすく、スペースを入れて / [\x81-\x9f] [\x40-\xfc] | [\xe0-\xfc] [\x40-\xfc] / とした場合、例えば、亜a という文字列があったら 亜 の2バイト目(下位ニブルっていうのかな)が 9F で b は16進で 62 だから、亜 の2バイト目と a が、 2バイトのシフトJISとしてこれにマッチしてしまうんです。 シフトJISで、こういう例外処理を書かずに、 全てに適用できるシフトJIS2バイトマッチのソースが あれば教えてください。

    • ベストアンサー
    • CGI
  • シフトJIS の1バイト目

    シフトJISの1バイト目は 0x81~0x9F と 0xE0~0xEF というサイトもある。 0x81~0x9F と 0xE0~0xFC というサイトもある。 最近、文字コードに追加か削除された文字があるから 意見が2つに分かれていると思うんだけど、 現在はどうなのか教えてください。 シフトJISの2バイト目は 0x40~0x7E と 0x80~0xFC ですか? http://google.yahoo.co.jp/bin/query?p=%a5%b7%a5%d5%a5%c8JIS+9F+E0+81&hc=0&hs=0 を参考にしました。

    • 締切済み
    • CGI
  • シフトJISの2バイト文字

    シフトJISの1バイト目は シフトJISの1バイト目は 0x81~0x9F と 0xE0~0xEF と書いてあるサイトもいくつかあるし、 0x81~0x9F と 0xE0~0xFC と書いてあるサイトもいくつかあります。 どうして意見が2つに分かれているんですか? どっちが正しいのか教えてください。 シフトJISの2バイト目は 0x40~0x7E と 0x80~0xFC ですか?

  • シフトJISにてデコード 文字化け

    EUC-JPを用いてエンコードすると「A4 AD A4 AB A4 A4 A4 AB A4 AC A4 AF BA B0 BD」となった文字列を保存したテキストをシフトJISでデコードした場合に表示される文字列は何ですか?文字化けするらしいのですがわかりません。分かる方教えてください!

  • 「シフトJIS X 0213」形式の文字コードチェック

    Javaにて「シフトJIS X 0213」で定められている下記の文字を判断したいです。 (参照: http://www.eonet.ne.jp/~kotobukispace/ddt/jisx0213/sjis8xxx.html) ・第3水準 ・第4水準 ・予約 ・使用不可 実現方法としては、文字列を「シフトJIS X 0213」にエンコードして、 エンコードした文字のバイトを判断するのが妥当だと思いますが、 Javaにて「シフトJIS X 0213」にエンコードすることは可能でしょうか。 sunの「サポートされているエンコーディング」の一覧を見ても「シフトJIS X 0213」 はサポートされていないように見受けられます。 (参照: http://www.ingrid.org/java/i18n/encoding/) 仮に「シフトJIS X 0213」にエンコード出来ない場合、 他の方法にて実現する方法等ありましたらご教授願います。 【動作環境】 OS:Windows Vista Business JRE:1.5.0_10

    • ベストアンサー
    • Java
  • シフトJISでURLエンコード

    IEのJavaScriptのescapeで日本語をURLエンコードすると、UnicodeでURLエンコードしてしまいますが、シフトJISのままURLエンコードする方法はないのでしょうか? 文字列のシフトJISコードを取得する方法でも良いのですが・・・。 まったく、Unicodeなんて役に立たないものを無理矢理標準にしようとしないで欲しいナ!>MS

  • シフトJISでのフォーム処理

    シフトJISで書かれたPHPのページから日本語をGETで送り、 同じくシフトJISで書かれたPHPのページで受け取った文字を表示させたいのですが 「%8D%5D%8C%CB%90%EC%8B%E6」のような文字になってしまいます。 シフトJISのまま日本語を渡す方法はありますか? 携帯サイトだからなんとなくシフトJISを使っているのですが、 そもそもUTF8で書いた方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • 文字操作をしたjisコードをシフトjisに変えたい

    携帯メールをCGIで受け取って処理するスクリプトを書いているのですが 文字コードの処理について行き詰っています。 $str = " $B$F$9$H (B"; #jisコードで"てすと" として、この文字列をjcode.pmでシフトjisに変換したいのですが $body = Jcode::convert($str, 'sjis'); このようにしても$bodyの中身は" $B$F$9$H (B"のまま変わりません。 MIME::parserでうけとったjisコードの文字列はちゃんと変換されるのでjcode.pmに問題はないと思われますが、 文字列操作をして変数に入れるとMIME::parserで受け取った場合とおなじ内容でもデコードされないとゆう結果になります。 なにか根本的に違うのでしょうか… スペースを省いてみたり $body = Jcode::convert($str, 'sjis','jis'); としてみたりしたのですが まったくダメでした。 ちょっとしたアドバイスだけでもいいのでよろしくお願いします。 あとお金がかかってもよいので、そういった問題を解決できそうなサイトなどがあれば紹介していただければと思います。 よろしくお願いします。m(__)m

  • シフトJIS文字列の中から

    (string str;) pos=str.find_last_of("「"); で2バイトさがそうとしても文字化けと同じように間違った文字を見つけてしまいます このシフト文字列対策はどうすればいいのでしょうか?

  • JISコードをシフトJISコードに変換する方法

    紙とえんぴつを使ってJISコードをシフトJISコードに変換する方法を教えてください。 たしか16進数の変換などを使って出来ると聞いたことがあります。 一文字の漢字だけで良いんです。 例えば『高』という漢字のJISコード「3962」をシフトJISコード「8D62」に変換したいというわけです。 2進数や16進数の計算の知識だけはあります。よろしくお願いします。