ASP.NET(C#)でTwitter OAuth(日本語対応)
OAuthとC#でマルチバイト文字を扱う
http://d.hatena.ne.jp/nyanp/20100504/p1
要は、OAuthBase 内に以下のコードを追加して、
protected string UrlEncode(string value, Encoding encode) { StringBuilder result = new StringBuilder(); byte[] data = encode.GetBytes(value); int len = data.Length; for (int i = 0; i < len; i++) { int c = data[i]; if (c < 0x80 && unreservedChars.IndexOf*1; } } return result.ToString(); }
次に、OAuthTwitter.csのoAuthWebRequest内の
qs[key] = this.UrlEncode(qs[key]);
を、以下のように書き換えれば良いだけ。
qs[key] = this.UrlEncode(qs[key], System.Text.Encoding.UTF8);
*1:char)c) != -1) { result.Append((char)c); } else { result.Append('%' + String.Format("{0:X2}", (int)data[i]