事業内容
PunyCode変換
C#でPunyCode変換をやってみます。
方法としてはIdnMappingクラスを利用する方法と、
UriクラスのDnsSafeHostプロパティを利用する方法があります。
まず、IdnMappingを利用する方法です。
以下のようにGetAsciiメソッドを利用して実装します。
次に、UriクラスのDnsSafeHostプロパティを利用する方法です。
以下のように実装します。
また、このDnsSafeHostプロパティを利用する場合、app.configに以下を追記する必要があります。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
</configuration>
machine.configを修正してもできるみたいです。
カスタムセクションとか作ったことなかったのでちょっとハマリました。
PublicKeyTokenの確認はVisualStudioのコマンドプロンプトで以下のコマンドを実行します。
『sn -T ファイルパス』
ファイルパスは『typeof(クラス名).Assembly.Location』で確認できます。
後はウォッチでAssemblyの中身を見てもらっても確認できます。
C#へ