C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: テキストボックスに入力された物の言語をチェックできますか?


(過去ログ 17 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■6587 / inTopicNo.1)  テキストボックスに入力された物の言語をチェックできますか?
  
□投稿者/ レンジ卵 (1回)-(2007/08/20(Mon) 06:45:50)

分類:[C#] 

C#で、簡単な単語帳(アラビア語−英語−日本語)を作っています。
テキストボックスに入力した語が、アラビア文字か、英語か、日本語か、チェックして、誤った入力の場合(例えば、英語のアルファベットで入力すべきところ、日本語のひらがな・漢字で入力したとか、アラビア文字で入力すべきなのに、英語アルファベットで入力したとか)、エラーメッセージを表示したいのです。どうやって入力された文字が、特定の言語の文字と区別すればいいでしょうか?UTF-8で、それぞれの言語の文字のコード番号とか調べて、列挙し対応すべきなのでしょうか?
(C#初めて独学で6ヶ月ぐらいの知識レべルです。)
引用返信 編集キー/
■6588 / inTopicNo.2)  Re[1]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ YAS (13回)-(2007/08/20(Mon) 08:21:05)
正規表現で文字クラスを使って判断してみてはどうでしょう?
文字クラスについては下記リンクを参照してください。

http://msdn2.microsoft.com/ja-jp/library/20bw873z(VS.80).aspx
http://unicode.org/charts/
引用返信 編集キー/
■6590 / inTopicNo.3)  Re[2]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ 中博俊 (1147回)-(2007/08/20(Mon) 09:41:27)
中博俊 さんの Web サイト
アラビア文字て数字のことかや?
正規表現で細かいチェックは無理だと思うので、何をチェックするべきなのかを厳密に定義して、リストアップするか、正規表現でやるか決めてください。

#つい最近も書いたけどね(^^;

たとえば
アラビア文字:0〜9
英語:a〜zA〜Z
日本語:その他


とするなら正規表現でも簡単にわかります。
でもそうすると()’!”#$% こんな記号はどうするの?とかそういう問題もでてくるかもしれません。
それはあなたのアプリケーションの仕様で決めてください。

引用返信 編集キー/
■6592 / inTopicNo.4)  Re[3]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ よねKEN (68回)-(2007/08/20(Mon) 09:51:59)
よねKEN さんの Web サイト
#回答じゃありません
アラビア文字
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A9%E3%83%93%E3%82%A2%E6%96%87%E5%AD%97

引用返信 編集キー/
■6597 / inTopicNo.5)  Re[1]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ れい (42回)-(2007/08/20(Mon) 11:00:33)
No6587 (レンジ卵 さん) に返信
> C#で、簡単な単語帳(アラビア語−英語−日本語)を作っています。
> テキストボックスに入力した語が、アラビア文字か、英語か、日本語か、チェックして、誤った入力の場合(例えば、英語のアルファベットで入力すべきところ、日本語のひらがな・漢字で入力したとか、アラビア文字で入力すべきなのに、英語アルファベットで入力したとか)、エラーメッセージを表示したいのです。どうやって入力された文字が、特定の言語の文字と区別すればいいでしょうか?UTF-8で、それぞれの言語の文字のコード番号とか調べて、列挙し対応すべきなのでしょうか?
> (C#初めて独学で6ヶ月ぐらいの知識レべルです。)

アラビア語は全く知りませんが。
スロベニア語とかタガログ語とかで苦労しました。

Unicodeは言語毎に並んでるとかそういったことは全然ないので、
同じ文字でも多言語で使われたり、
コントロールコード(?)みたいなのもあったりとかで、
完璧にやるのはつらいです。
アラビア語だとRLMとか対応しないといけないし。

YASさんの方法で大まかに対応しても、全部は無理かと思います。
使っていて気になったところを個別に対応できるように
作っておくといいと思います。

引用返信 編集キー/
■6598 / inTopicNo.6)  Re[4]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ YAS (14回)-(2007/08/20(Mon) 11:00:58)
2007/08/20(Mon) 11:04:00 編集(投稿者)

正規表現で文字クラスIsArabic等で簡易的に判断できませんか?

もちろん確実に動作するようにするためには厳密な定義が必要になりますが,
文字クラスの定義でもある程度は実用になると思いますが...

(アラビア文字が正規表現で区別できるかどうかは,実は試したことがありません。
 できなかったら申し訳ありません。)

追加:入力している間にれいさんの返信があり,内容が少しダブってしましました。
引用返信 編集キー/
■6607 / inTopicNo.7)  Re[5]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ れい (45回)-(2007/08/20(Mon) 13:52:46)
No6598 (YAS さん) に返信
> (アラビア文字が正規表現で区別できるかどうかは,実は試したことがありません。
>  できなかったら申し訳ありません。)

"\p{IsArabic}"で試しましたが、
一応動いてるっぽいです。
読めないので怪しいですが。

実際使うには句読点とか記号とか空白とか、
全部やらなきゃなので大変そうです。
引用返信 編集キー/
■6736 / inTopicNo.8)  Re[2]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ レンジ卵 (2回)-(2007/08/23(Thu) 05:22:50)
No6588 (YAS さん) に返信
参照のサイトを教えていただきありがとうございます。
後一つ、日本語の場合、IsHiragana、IsKatakanaはいいのですが、漢字については、どの名前付きブロックを使用すればいいのか、ご存知でしょうか?IsCJKRadicalsSupplementでしょうか、IsKangxiRadicalsでしょうか?それともIsIdeographicDescriptionCharacters でしょうか? すみません、馬鹿な質問をして…。

No6597 & 6607 (れい さん) に返信
>"\p{IsArabic}"で試しましたが、一応動いてるっぽいです。
どうもありがとうございます。試してみます。でも、もう一つだけ、

> アラビア語だとRLMとか対応しないといけないし。
→これがよくわからなかったのですが(汗)
1)Windowsのdesktop applicationでも、Web applicationでも、RLMを設定しないといけないのでしょうか?
Windowsのdesktop applicationなら、入力にアラビア語を設定したら、自然にRLMになって入力される??
2)すみません、Web applicationでRMLを設定するとなると、どうすればいいのでしょうか? 参考となるサイトとか教えていただけると、ありがたいです。
引用返信 編集キー/
■6737 / inTopicNo.9)  Re[3]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ YAS (15回)-(2007/08/23(Thu) 06:05:21)
> 後一つ、日本語の場合、IsHiragana、IsKatakanaはいいのですが、漢字については、どの名前付きブロックを使用すればいいのか、ご存知でしょうか?
>IsCJKRadicalsSupplementでしょうか、IsKangxiRadicalsでしょうか?それともIsIdeographicDescriptionCharacters でしょうか? すみません、馬鹿な質問をして…。

通常はIsCJKUnifiedIdeographsです。
引用返信 編集キー/
■6744 / inTopicNo.10)  Re[3]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ れい (48回)-(2007/08/23(Thu) 09:04:12)
No6736 (レンジ卵 さん) に返信
> 後一つ、日本語の場合、IsHiragana、IsKatakanaはいいのですが、漢字については、どの名前付きブロックを使用すればいいのか、ご存知でしょうか?IsCJKRadicalsSupplementでしょうか、IsKangxiRadicalsでしょうか?それともIsIdeographicDescriptionCharacters でしょうか? すみません、馬鹿な質問をして…。

どの文字を日本語として認識したいかによるでしょう。
コードポイントもかいてありますので、
Unicode Specificationで確認したほうがいいのではないですか?
中国とか韓国の漢字と混ざってるのでやな感じですよ。

私はShift-JISに変換できる文字を日本語とするのがいいと思いますが。

> ■No6597 & 6607 (れい さん) に返信
>>アラビア語だとRLMとか対応しないといけないし。
> →これがよくわからなかったのですが(汗)

RLMは右から左に書くよう指示する幅無しのコードです。
似たようなのにLRM,LRE,RLE,LRO,RLOなどがあります。

> 1)Windowsのdesktop applicationでも、Web applicationでも、RLMを設定しないといけないのでしょうか?

それは、どういうアプリケーションを作りたいかによります。
LRな言語とRLな言語を同じテキストボックスに表示したり、同じWebPageに表示するなら必要でしょう。

> Windowsのdesktop applicationなら、入力にアラビア語を設定したら、自然にRLMになって入力される??

テキストボックス等で勝手にRLMが挿入されることはないと思いますが。
勝手に入れる変なIMEとか自動で挿入してくれるツールとかあるかもしれませんが。

> 2)すみません、Web applicationでRMLを設定するとなると、どうすればいいのでしょうか? 参考となるサイトとか教えていただけると、ありがたいです。

これもどういうアプリケーションを作りたいかによるので、答えようがありません。

残念ですが、いいサイトを見た覚えがありません。
見ていたとしてもURLを覚えておくことなんてできません。
適当に検索すればたくさん出てくると思いますので、自分で調べてください。
Unicode.orgを読破すれば絶対わかるはずですが、お勧めしません。
引用返信 編集キー/
■6808 / inTopicNo.11)  Re[4]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ レンジ卵 (3回)-(2007/08/24(Fri) 06:11:22)
No6744 (れい さん) に返信
> ■No6736 (レンジ卵 さん) に返信
> Unicode Specificationで確認したほうがいいのではないですか?
> 私はShift-JISに変換できる文字を日本語とするのがいいと思いますが。

あ、なるほどそうですね。

> 適当に検索すればたくさん出てくると思いますので、自分で調べてください。
> Unicode.orgを読破すれば絶対わかるはずですが、お勧めしません。

グーグルで、LRMとC#をキーワードに検索してヒットしたうちのいくつかを見たのですが、よくわからなかったもので…。まだまだ初心者なので?な所も多いのですが、れい様の教えてくださった言葉を手がかりにもう少しネット検索し、じたばた(汗)と努力してみます。(どうしてもわからなければ、最後には、教えてくださったUnicode.orgを見ればいいのだし) どうもありがとうございました。
引用返信 編集キー/
■6809 / inTopicNo.12)  Re[4]: テキストボックスに入力された物の言語をチェックできますか?
□投稿者/ レンジ卵 (4回)-(2007/08/24(Fri) 06:15:03)
No6737 (YAS さん) に返信
>>後一つ、日本語の場合、漢字については、どの名前付きブロックを使用すればいいのか、ご存知でしょうか?

> 通常はIsCJKUnifiedIdeographsです。

ありがとうございます。試してみます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -