#title(kanaxs C# : ひらがなとカタカナ、半角と全角の相互文字変換を行うC#のクラス)

#contents

*kanaxs C# : ひらがなとカタカナ、半角と全角の相互文字変換を行うC#のクラス [#n0483e48]

**kanaxs C#とは? [#n8903b82]

文字列内に含まれているひらがなとカタカナの相互変換や、半角文字と全角文字の相互変換などを行うクラスです。「[[kanaxs>http://code.google.com/p/kanaxs/]] Kana.JS 1.0.5」をC#に移植したものです。

**必要条件 [#q6a41a70]

実際に確認はしていませんが、すべてのバージョンの.NET Framework(C#)で動くように作成したつもりです。

**機能 [#hf5d06c1]

kanaxs C#には、以下の機能があります。

***ToHiraganaメソッド [#a9c8186c]

全角カタカナを全角ひらがなに変換します。具体的には、ァ(0x30A1)からヶ(0x30F6)までの文字をひらがなに変換します。

#code(csharp){{
string inputText = "キョウモイイテンキデスネ。";

//カタカナをひらがなに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToHiragana(inputText);

Console.WriteLine(outputText);
//きょうもいいてんきですね。
}}

***ToKatakanaメソッド [#q9089b28]

全角ひらがなを全角カタカナに変換します。具体的には、ぁ(0x3041)からゖ(0x3096)までの文字をカタカナに変換します。

#code(csharp){{
string inputText = "あしたもいいてんきですね。";

//ひらがなをカタカナに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToKatakana(inputText);

Console.WriteLine(outputText);
//アシタモイイテンキデスネ。
}}

***ToHankakuメソッド [#c983f77f]

全角英数字および記号を半角に変換します。具体的には、!(0xFF01)から〜(0xFF5E)までの文字と全角スペースを半角文字に変換します。

#code(csharp){{
string inputText = "1tasu2ha 4DA!";

//全角を半角に変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToHankaku(inputText);

Console.WriteLine(outputText);
//1tasu2ha 4DA!
}}

***ToZenkakuメソッド [#scd6f057]

半角英数字および記号を全角に変換します。具体的には、!(0x0021)から~(0x007E)までの文字と半角スペースを全角文字に変換します。

#code(csharp){{
string inputText = "1tasu2ha 3DA!";

//半角を全角に変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToZenkaku(inputText);

Console.WriteLine(outputText);
//1tasu2ha 3DA!
}}

***ToHankakuKanaメソッド [#p7863e98]

全角カタカナを半角カタカナに変換します。具体的には、ァ(0x30A1)からン(0x30F3)までの文字と、ー(0x30FC)を、半角に変換します。

#code(csharp){{
string inputText = "キョーワ、イイテンキデスネ。";

//全角カナを半角カナに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToHankakuKana(inputText);

Console.WriteLine(outputText);
//キョーワ、イイテンキデスネ。
}}

***ToZenkakuKanaメソッド [#wf74a9ca]

半角カタカナを全角カタカナに変換します。具体的には、ヲ(0xFF66)から゚(0xFF9F)までの文字を変換します。

#code(csharp){{
string inputText = "キョーモ、イイテンキデスヨ。";

//半角カナを全角カナに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToZenkakuKana(inputText);

Console.WriteLine(outputText);
//キョーモ、イイテンキテ゛スヨ。
}}

***ToPaddingメソッド [#pd006268]

「は゛」を「ば」のように、濁点や半濁点を前の文字と合わせて1つの文字に変換します。ToZenkakuKanaメソッドは半角カナの濁点と半濁点をそのまま全角の濁点と半濁点に変換しますので、これを前の文字と合体させて1つの文字にするためには、ToPaddingメソッドを呼び出します。

#code(csharp){{
string inputText = "フ゜テ゛ィンク゛";

//濁点と半濁点を前の文字と結合させる
string outputText = CSharp.Japanese.Kanaxs.Kana.ToPadding(inputText);

Console.WriteLine(outputText);
//プディング
}}

**ライセンス [#license]

[[kanaxs>http://code.google.com/p/kanaxs/]]と同じ、[[修正BSDライセンス>./license]]です。

**ダウンロード [#download]

-ファイルの文字コードはUTF-8です。文字コードを変更すると不具合が発生する可能性がありますので、文字コードを変更しないでください。一部の開発環境では文字コードが強制的に変更されてしまうことがありますので、ご注意ください。
-拡張子が".txt"になっている場合は、ファイル名から".txt"を取り除いてご使用ください。

|バージョン|リンク|変更点|h
|1.0.0|&ref(./kanaxs-1.0.0.cs.txt);||

**拡張版 [#extension]

[[kanaxs>http://code.google.com/p/kanaxs/]]とほぼ同じ機能を持つKanaクラスを若干拡張した、KanaExクラスも作成してみました。ほとんど使われることのない文字に対応させているため、改悪になっているかもしません。

Kanaクラスとの違いは、以下のとおりです。

***ToHiraganaメソッド [#y423a451]

Kana.ToHiraganaメソッドと違い、「ヽヾヷヸヹヺ」も変換します。

***ToKatakanaメソッド [#d5c2f442]

Kana.ToKatakanaメソッドと違い、「ゝゞ」も変換します。

***ToHankakuメソッド [#q400daf1]

Kana.ToHankakuメソッドと違い、「¥”’」も変換します。

***ToZenkakuメソッド [#yb682f6d]

Kana.ToZenkakuメソッドと違い、「\"'」を「¥”’」に変換します。(Kana.ToZenkakuメソッドは「\"'」を「\」に変換します。)

***ToHankakuKanaメソッド [#i8945d06]

Kana.ToHankakuKanaメソッドと違い、『、。「」・゛゜U+3099(濁点)U+309A(半濁点)ヴヷヺ』も変換します。

***ToZenkakuKanaメソッド [#k1952414]

Kana.ToZenkakuKanaと違い、『。「」、・』も変換します。また、濁点、半濁点がその前の文字と合体できる時は合体させて1文字にします。

***ToPaddingメソッド [#t75474dc]

Kana.ToPaddingと違い、「ゔゞヴヷヸヹヺヾ」への変換も行います。また、U+3099(濁点)とU+309A(半濁点)も前の文字と合体させて1文字にします。

***ダウンロード [#d3395dd1]

#insertblock(1.0.1){{
-ToHankakuメソッドで「“」が「"」に、「‘」が「'」に変換されるようにした。
}}

#insertblock(1.0.2){{
-ToZenkakuKanaメソッドで「ヅデド」を変換すると濁点がなくなる不具合を修正。
}}

#insertblock(,%){{
|バージョン|リンク|変更点|h
|1.0.2|&ref(./kanaxs_ex-1.0.2.cs.txt);|%1.0.2%|
|1.0.1|&ref(./kanaxs_ex-1.0.1.cs.txt);|%1.0.1%|
|1.0.0|&ref(./kanaxs_ex-1.0.0.cs.txt);||
}}

**その他 [#s3255027]

-[[VB.NET版>../kanaxsVB.NET]]もあります。
-拡張メソッドにした方が便利かもしれませんが、そうしませんでした。

**コメント [#e896da57]
- ToZenkakuKanaで、「ヅデド」の部分でうまく変換されない? -- tritonal &new{2014-06-19 (木) 17:09:55};
-- KanaExのToZenkakuKanaメソッドですね。修正しておきました。ご報告ありがとうございました。 -- [[管理人]] &new{2014-06-20 (金) 01:56:17};

#comment

//これより下は編集しないでください
#pageinfo([[:Category/.NET]] [[:Category/ASP.NET]],2011-03-22 (火) 00:58:09,DOBON!,2014-06-20 (金) 01:32:23,DOBON!)
[ トップ ]   [ 編集 | 差分 | バックアップ | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]