- PR -

文字列の全角判定について

投稿者投稿内容
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-13 11:22
引用:
ホントにこれで大丈夫?

Vista 以降(XP でも Windows Update すると?)、UTF-16 でも1文字≠2バイトな文字が出現しちゃってるのはご存知ですか?

大丈夫じゃないと思います。でも問題はUTF-16じゃなくて、
「全角として扱いたいけどShuft_JISで定義されてない文字」じゃないですかね。

「鷗」をそのチェックにかけてみてください。(特に未記入さん)
([おうがい]変換すると出てくると思います)
これでizHankakuがtrueになると思うので、こういう文字を想定しない場合以外は
「今回やりたいことと同様」ではないということですよね。

あと「たまたま」っていうか、あのTIPSは.NETやるにあたって、わからないことあったら
まず見よう、ってくらい参考になりますよ。C++だと読み替えなきゃならないけど、、

[追記]
うぎゃ、、やっぱりか、、、鷗は[もりおうがい]の[おう]です。鴎じゃなくて、真ん中が[口]3つのやつ、、、

多分ノーマルのXPでも同じだと思います。。たしか、、

[ メッセージ編集済み 編集者: べる 編集日時 2007-09-13 11:25 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-09-13 11:29
引用:

渋木宏明(ひどり)さんの書き込み (2007-09-13 11:08) より:
Vista 以降(XP でも Windows Update すると?)、UTF-16 でも1文字≠2バイトな文字が出現しちゃってるのはご存知ですか?


「サロゲートペア」っていうので表現される文字達のことですね。

しかし……Shift-JISの人気に嫉妬しっ放しなんだが。
なんでみんなそんなにShift-JIS好きなんでしょうね。私はそんなに魅力を感じないんですが。
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2007-09-13 11:49
すみません、ゴミレスです。

>同じ数字に見える文字でも「ASCIIコードのアレ」と「いわゆる全角のアレ」があるので、それを区別してコミュニケーション

茶々入れるワケでなく、ごくごく普通に「ASCIIコードのアレ」とか「いわゆる全角の
アレ」(流石にいわゆる・・とはつけませんが...苦笑)なんて言ってやりとりしてま
した(^-^;

こういう場では気をつけないと(--;

[ メッセージ編集済み 編集者: 隣の古柴 編集日時 2007-09-13 11:51 ]
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-09-13 13:55
C# の例ですが(読み替えてください)、
コード:
using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        Regex zenkaku = new Regex("[^a-zA-Z0-9]");

        Console.WriteLine(zenkaku.IsMatch("あいうえお")); // true
        Console.WriteLine(zenkaku.IsMatch("123あいう")); // true
        Console.WriteLine(zenkaku.IsMatch("12345abc")); // false
        Console.WriteLine(zenkaku.IsMatch("12345abc")); // true
        Console.WriteLine(zenkaku.IsMatch("12345abc")); // true
    }
}


他に「半角」として扱いたいモノがあれば、パターンに追加してください。

_________________
囚人のジレンマな日々
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-13 14:56
引用:
しかし……Shift-JISの人気に嫉妬しっ放しなんだが。
なんでみんなそんなにShift-JIS好きなんでしょうね。私はそんなに魅力を感じないんですが。

私は決して好きなわけではありませんw。。魅力も感じません。しょうがなく付き合ってる感じです。。
業界に入ってそれほど長くないので歴史的な事情にそこまで詳しくないってのもありますが
全部UTF8でいいじゃん、とか割と思ってます。例えば新規にWEBサイトを作る場合、出力エンコードは
特別な事情や誰かからの指定でもない限りShuft_JisやEUC_JPにはしません。

引用:
例えばウムラウトの付いたAはどっちでしょうね。

[Aウムラウト]そのものにはもともと全角半角はないんじゃないですかね。
じゃあ1バイトで表現できるのかっていったら「Shift_Jisではできないけどiso-8859-1だったら
表現できます」ということになりますかね。Shift_JISの[半角カタカナのト](0xC4)が
iso-8859-1では[大文字のAウムラウト]に割り当てられているようです。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-09-13 15:46
引用:

一郎さんの書き込み (2007-09-13 11:29) より:
しかし……Shift-JISの人気に嫉妬しっ放しなんだが。
なんでみんなそんなにShift-JIS好きなんでしょうね。私はそんなに魅力を感じないんですが。


「好き」だから使っているという人は、あんまりいないと思いますが…。
単にWindowsやMac(MS-DOS等の過去も含めて)で標準だから、というだけで。
それに、大抵の人は文字コードを意識すらしてないでしょう。

私も、新規で作る際はだいたいUTF-8です。
Fabulous
ベテラン
会議室デビュー日: 2007/08/11
投稿数: 51
投稿日時: 2007-09-13 22:00
引用:

しかし……Shift-JISの人気に嫉妬しっ放しなんだが。
なんでみんなそんなにShift-JIS好きなんでしょうね。私はそんなに魅力を感じないんですが。


自システムで閉じた世界ならUnicodeでプロポーショナルフォントでOKでも、Shift-JISのシステムから「固定長テキストで情報を渡してくれ」というケースはまだ結構ありますよ。

ファイルフォーマット上「半角のみで余白を半角スペースで埋める」仕様の箇所を入力時にチェックするなら、このスレの質問のような機能が必要になりますね。
ただその場合は、「@Aを全角として判断する」でなく「Bを半角として判断する」でしょうけど。

スキルアップ/キャリアアップ(JOB@IT)