dtpjjtpj
@dtpjjtpj

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

VB.net URLの自動リンク検出を日本語対応したい

解決したいこと

RichTextBox1とDetectUrlsを使って、入力されたURLを自動でリンクにしてブラウザにジャンプできるようにしています。
URLに日本語が含まれていると、日本語がリンクになってくれず困っています。

発生している問題・エラー

エラーは特に無し
下記画面のような状態です。

スクリーンショット 2023-03-18 082748.jpg

該当するソースコード

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        RichTextBox1.DetectUrls = True
End Sub

Private Sub RichTextBox1_LinkClicked(sender As Object, e As LinkClickedEventArgs) Handles RichTextBox1.LinkClicked
        System.Diagnostics.Process.Start("EXPLORER.EXE", e.LinkText)
End Sub

### 自分で試したこと
日本語を含むURLをブラウザにコピーをして開くと問題なく開くようなので、URLは間違っていません。
0

1Answer

RichTextBoxが国際化ドメイン名の検出に対応していなさそうなので標準的な方法だけでの実現は諦めたが良いでしょう。

実現方法としては、テキストが変更された時に自力で日本語ドメイン名のリンクを検出してRtfプロパティを自力でリンクに差し替えること(※)などが考えられますが難易度が高めですね。
https://www.総務省.jpを見つけたらhttps://www.xn--lhr645fjve.jpにリンクを張る

1Like

Comments

  1. @dtpjjtpj

    Questioner

    やはり難しいのですね。

    下記のページで似たような質問があったのですが、解決方法が明記されておらず、こちらに質問しました。

    https://teratail.com/questions/298535

Your answer might help someone💌