DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C# 文字列に外字がある場合

環境/言語:[xp C#]
分類:[.NET]

文字列の中に外字(シフトJIS)があるかを判断するために

string aaa をコードに変換して
if (f040 < aaa < f9fc)

みたいな感じでコードの比較を行いたいんですけど、
さっぱりわかりません…
もしわかる人がいらっしゃったら、教えていただけたらと思います。
よろしくお願いします。
■No6909に返信(まーーーさんの記事)
> 文字列の中に外字(シフトJIS)があるかを判断するために
>
> string aaa をコードに変換して
> if (f040 < aaa < f9fc)
>
> みたいな感じでコードの比較を行いたいんですけど、
> さっぱりわかりません…
> もしわかる人がいらっしゃったら、教えていただけたらと思います。
> よろしくお願いします。

一文字づつ検査する必要があると思います。

一例としては下記のようにできます。
#ASCIIでないものにはTrueを返すので厳密ではありませんが・・・。

private bool IsShiftJisInStr(string s)
{
   foreach(char c in s)
      if(!(('A' <= c && c <='Z') || ('a' <= c && c <='z') || ('0' <= c && c <='9')))
         return true;
   return false;
}

又、値の妥当性チェックでしたら、正規表現をしようするという手もあります。

DOBON.NET | プログラミング道 | プログラミング掲示板