OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 暇なときにでも
  • 質問No.147869
  • 閲覧数42
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 59% (194/328)

シフトJISの2バイト文字を0に置き換えたいと思いました。

$sjifstr =~ tr/\x??-\x??/'0'/;

という部分の?が分かればこれは成功しますか?

これは2バイト文字を知るための勉強として
試していることです。
2バイト文字のことが分かるようになったら、
フォームから入力された文字列が7文字以上だった場合、
6文字目を…にして、日本語1文字を2文字として計算して
必ず6文字以内になるようにしたいと思っています。

abあいc → abあ…
あaいう → あい…
a亜bcい → a亜b…

のようにしたいと思っています。
それで、まず2バイト文字だけを取り出す方法を
教えてもらおうと思いました。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル11

ベストアンサー率 61% (157/255)

サンプル作ったげるから、あとは自分で研究してちょうだいな。

プログラム1
######################################

$strlen=10;
$line=<STDIN>;
chomp $line;
if (length $line>10) {
if (substr($line, $strlen-1, 2) =~ /([\x81-\x9f][\x40-\xfc])|([\xe0-\xfc][\x40-\xfc])$/) {
$line=substr($line, 0, $strlen-1);
} else {
$line=substr($line, 0, $strlen);
}
print $line."…";
} else {
print $line;
}

######################################


プログラム2
######################################
while(<>) {
$cnt =s/([\x81-\x9f][\x40-\xfc])|([\xe0-\xfc][\x40-\xfc])//g; # shift-jisの文字数
$cnt+=s/.//g; #半角の文字数
print $cnt;
}
######################################
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。
質問以外の
$cnt+=s/.//g; #半角の文字数
っていうのも勉強になりました。

前に教えてもらった
=~ ///o の o についてのソースなんでけど、
実際試してみたら全部ヒットしてしまいました。
分かりません。
でも、めったに使うことない o だと思うから
今はあんまり気にしていません。
投稿日時 - 2001-10-14 08:10:50
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル11

ベストアンサー率 31% (72/232)

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

お礼率 59% (194/328)

ありがとうございます。
substr($line, $strlen-1, 2)
というふうに2文字ずつなんですね。
投稿日時 - 2001-10-14 08:08:01


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ