- - PR -
C#による半角⇔全角変換の方法は?
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-30 12:01
半角文字→全角文字 (変換方法)
半角文字を全角文字に変換する関数 ASP.NET/C#でStrConvを | ||||||||||||||||
|
投稿日時: 2004-03-31 10:05
KERNEL32.DLLにある、LCMapStringW関数をラップして、全角/半角、大文字/小文字、ひらがな/カタカナ変換を行うクラスライブラリのサンプルを作成しました。下の"www"のリンクから、私のウェブページへ行き、更新記録の「Win32APIで定義された関数をラッピングする」をクリック、サンプル1のソリューションをダウンロードしてください。
使用に関しては、ページの先頭にある注意事項をよく読んでください。 なお、LCMapStringの仕様で、いくつかの文字については変換できません。 | ||||||||||||||||
|
投稿日時: 2004-03-31 10:13
マジっすか! スレッド主ではなですが、ありがとうございます&ご苦労さまです。 いっただきま〜す〜 _________________ | ||||||||||||||||
|
投稿日時: 2004-04-07 15:43
こんにちは。
ご教授いただきありがとうございました。 私は全角文字を配列に持って対処する事にしました。 | ||||||||||||||||
|
投稿日時: 2005-12-26 23:04
スマートデバイスの開発中にこのスレッドにたどり着きました。今更ですが。 Microsoft.VisualBasic.Strings.StrConvは.Net Compact Frameworkではサポートされていないようです。 StrConv 関数 仕方がないので自作しようと考えました。 変換テーブルの作成が現実的によさそうですね。論理上でも最大256しか扱いませんし。 0-9|A-Z|a-zのみ対応でも当面実用には困らなさそうです。 この案を採用させていただきました。どうもありがとうございます。 私は変換テーブルにハッシュテーブルを使ってみました。(.Net Compact Framework対応) アンマネージコードは極力避けたかったのと、String.Replaceより効率がよさそうかと考えました。 【変換処理】
【変換テーブル(半角→全角)】
【変換テーブル(全角→半角)】
変換テーブルは一つでも足りますが、Convertメソッドを汎用的に使用するなら変換のバリエーション分持っていた方が良いと思います。 | ||||||||||||||||
|
投稿日時: 2005-12-27 01:07
速さでいうならば、switch 〜 case の通しなんてどうでしょうね? (^^;)
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2005-12-27 09:52
StrConvといえば昔こんなのがありましたねぇ
http://72.14.203.104/search?q=cache:0E4l2iNrxw8J:www.ag.il24.net/~nakasima/vb/trap/index.htm+strconv%E3%81%AE%E7%BD%A0&hl=ja&lr=lang_ja | ||||||||||||||||
|
投稿日時: 2005-12-27 10:12
昔も何も、今も '\\' あたりは変換不可っすよw よくあるのが、StrConv したものに対して Replace('\\', '¥'); _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |