Friday, October 24, 2008

Convert Accented Characters to ASCII

It is pretty simple in .NET to convert Western Unicode (non-ASCII, accented, diacritics) to ASCII, but regardless I had a hard time figuring it out it so I'm posting here for my own future reference.

Dim strTest as String = "Any string containing accented characters, e.g. åäöéèêÅÄÖÉÈÊ"
strTest = System.Text.Encoding.ASCII.GetString(System.Text.Encoding.GetEncoding(1251).GetBytes(strTest))

Labels:

Tuesday, June 24, 2008

Punycode in VB.NET for IDN domains

On one of my web sites I noticed that IDN (Internationalized Domain Names) don't work when I do Response.Redirect in VB.NET.

IDNs are used to allow accented and other special international characters (non-Ascii) to be used in domain names. Since Domain Name Servers (DNS) only support Ascii, any IDN is encoded in Punycode.


To encode a string as Punycode in VB.NET simply do this:


Dim strUrl As String = "http://idn-example-åäö.com"
Dim idn As System.Globalization.IdnMapping = New System.Globalization.IdnMapping
strUrl = idn.GetAscii(strUrl)

Labels: , ,