セキュリティに関する検証でURLにUnicode文字をくっつけるっていうのをやるってんで、
データ作成用ツールを作ったのでそのソースから抜粋。
#自信は全然ありません。
#日本語環境でのみしか動作しないと思います。
public string Ascii2Unicode(string src)
{
string retVal = "";
Encoder encoder = Encoding.Default.GetEncoder();
byte [] bytes = new byte[encoder.GetByteCount(src.ToCharArray(), 0, src.Length, true)];
encoder.GetBytes(src.ToCharArray(), 0, src.Length, bytes, 0, true);
foreach (Byte b in bytes)
{
retVal += String.Format("%{0:X}", b);
}
return retVal;
}
public string Unicode2Ascii(string src)
{
string retVal = "";
ArrayList byteList = new ArrayList();
string [] temp = src.Split('%');
foreach (string s in temp)
{
if (s.Length > 0)
{
byteList.Add(Byte.Parse(s, System.Globalization.NumberStyles.HexNumber));
}
}
byte [] bytes = new byte[byteList.Count];
for (int i=0; i<byteList.Count; i++)
{
bytes[i] = (byte) byteList[i];
}
Decoder asciiDecoder = Encoding.Default.GetDecoder();
char [] chars = new char[asciiDecoder.GetCharCount(bytes, 0, bytes.Length)];
asciiDecoder.GetChars(bytes, 0, bytes.Length, chars, 0);
foreach (char c in chars)
{
retVal += c;
}
return retVal;
}