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

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

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

Re[2]: 日本語ドメインをPunycode(ビュニコード)に変換したい


(過去ログ 85 を表示中)

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

■50620 / inTopicNo.1)  日本語ドメインをPunycode(ビュニコード)に変換したい
  
□投稿者/ tani (5回)-(2010/06/12(Sat) 23:38:45)

分類:[VB.NET/VB2005 以降] 

開発環境:WindowsVista Business、VisualStudio2005 Professional Edition

日本語ドメインをPunycode(ビュニコード)に変換させたいと思います。

http://日本語.jp
    ↓
http://xn--wgv71a119e.jp

しかし、ソースをどのように書けば良いのかわからず、ネットを探しまわっています。
参考になるサイトやサンプルソースがあるサイトをご存じの方がいましたら、教えて頂けませんか。

よろしくお願い致します。
引用返信 編集キー/
■50622 / inTopicNo.2)  Re[1]: 日本語ドメインをPunycode(ビュニコード)に変換したい
□投稿者/ よねKEN (527回)-(2010/06/13(Sun) 00:38:22)
No50620 (tani さん) に返信
> しかし、ソースをどのように書けば良いのかわからず、ネットを探しまわっています。
> 参考になるサイトやサンプルソースがあるサイトをご存じの方がいましたら、教えて頂けませんか。

PunycodeをGoogleで検索したらかなりの情報が引っかかりましたよ。

(1) RFC 3492を熟読して理解した上で、がんばって実装
C#で実装している方がいらっしゃいました。
http://www.misuzilla.org/dist/net/punycode/

ソースコードを読みこなすにはRFC 3492を理解しないと辛そうです。

(2) JPINICで配布されているらしいidnkitのidnconvというツールを使う
プログラムからツールを呼び出して処理結果を利用する。
うまく利用ができるかどうかは検証していませんが、一つの案として。

参考URL:
http://www.atmarkit.co.jp/fnetwork/dnstips/024.html

(3) Uri.DnsSafeHost プロパティ を使う。
System.Net.UriクラスのDnsSafeHostプロパティを使う方法。.NET Framework2.0 SP1以降で利用できるようです。
ただし、アプリケーション構成ファイル(app.config)での設定がいるようです。

System.Net.UriクラスのDnsSafeHostプロパティ
http://msdn.microsoft.com/ja-jp/library/system.uri.dnssafehost.aspx

私のところでざっくり動作検証をしてみた内容を記載しておきます。

[ソースコード]
Dim 日本語のuri As New Uri("http://日本語.jp")
MessageBox.Show(日本語のuri.DnsSafeHost)

[app.config]
app.configをプロジェクトに追加し、以下の内容を<configuration></configuration>内に追加。

<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>

[検証結果]
提示例にあった「http://xn--wgv71a119e.jp」が表示されました。
引用返信 編集キー/
■50625 / inTopicNo.3)  Re[2]: 日本語ドメインをPunycode(ビュニコード)に変換したい
□投稿者/ tani (6回)-(2010/06/13(Sun) 11:41:00)
よねKENさん

早速のご回答ありがとうございます。
また、ご丁寧な回答に感謝します。

今回、教えて戴いた中で、3番目の方法をとることにしました。

私の環境では、下記の方法で実装することができました。

1.app.configをプロジェクトに追加し、以下の内容を<configuration></configuration>内に追加。
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>

2.UAC(ユーザーアカウント制御)を無効化(machine.configファイルを修正するため)
  [コントロールパネル]−[ユーザーアカウント]−[ユーザーアカウント制御の有効化または無効化]

3.C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.configファイルを開き、
  <configSections>の直下に下記の記述を追加。

  <section name="uri" type="System.Configuration.UriSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />


この度は、本当にありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -