当我使用MyWebBrowser.Source = new Uri(
uri );
时,我遇到了麻烦
我想将韩语添加到 uri 。但是当我这样做时,我可以看到来自韩国的破碎角色。我寻找解决方案,但我无法理解方式。有人指示使用编码/解码的方式..但是,我不知道如何将它应用于我的代码。
请帮帮我
<Grid Background="White"><WebBrowser Name="MyWebBrowser" /></Grid>
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
change_room();
}
private void change_room()
{
string room_name = "example";
string nick = "한글";// 한글 means Korean.
string uri = "http://" + room_name + ".com/chat?nick=" + nick ;
try
{
MyWebBrowser.Source = new Uri(uri);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
string uri = "http://" + room_name + ".server.ohcs.uu.gl/chat?nick=" + HttpUtility.UrlEncode(nick,
的 System.Text.Encoding.GetEncoding( “EUC-KR”) `) + "&text=&sessid=" + room_name;
上面的代码不能使韩文正确。
答案 0 :(得分:0)
您应该对来自用户输入的字符串使用HttpUtility.UrlEncode
方法,并使用包含破坏URL /未正确通过的字符的字符串(&符号,外来字符等)。这样,在URL中使用它就是安全的。
string uri = "http://" + HttpUtility.UrlEncode(room_name) + ".com/chat?nick=" + HttpUtility.UrlEncode(nick, System.Text.Encoding.GetEncoding("euc-kr"));
HttpUtility
类可以在程序集System.Web.dll
中找到。如果找不到与命名空间相关的错误,请确保使用System.Web.dll
对话框添加对Add References
的引用。
答案 1 :(得分:0)
我添加了有关我找到的解决方案的更多解释。
这是xaml代码&lt; .WebBrowser x:Name =“webBrowser”/。&gt;
下面的是cs代码
public room1()
{
string nick =“한글”;
webBrowser.Navigate(“http:/freechat.esy.es/minichat?chat = room1&amp; nick =”+ nick);
}
UriBuilder builder = new UriBuilder(“http://freechat.esy.es/minichat?chat=room1&nick =한글”);
string url = builder.ToString();
WebBrowser web = new WebBrowser(); web.Navigate(URL);
UriBuilder 将包含“한글”[string url]的unregualr字母转换为可以接受网络的regualr字母。
输入字母:[http://freechat.esy.es/minichat?chat=room1&nick= 한글]
UriBuilder翻译的信件:
[HTTP:/freechat.esy.es/minichat聊天= ROOM1&安培;缺口= <强>%ED%95%9C%EA%B8%80 强>
我找到了答案。我目前正在使用以下代码,现在工作正常。
string make_uri(string uri)
{
UriBuilder ub = new UriBuilder(uri);
string ubS = ub.ToString();
return ubS;
}
string send_uri { get; set; }
private void NavigateTo()
{
int cs = combo1.SelectedIndex;
if (DN == "Your Nick")
{
if (cs == 0) send_uri = ("http://freechat.esy.es/minichat?chat=room1" + mode + key);
else if (cs == 1) send_uri = ("http://freechat.esy.es/minichat?chat=chataa" + mode + key);
else if (cs == 2) send_uri = ("http://freechat.esy.es/minichat?chat=room2" + mode + key);
}
else
{
if (cs == 0) send_uri = (make_uri("http://freechat.esy.es/minichat?chat=room1&nick=" + DN + mode + key));
else if (cs == 1) send_uri = (make_uri("http://freechat.esy.es/minichat?chat=chataa&nick=" + DN + mode + key));
else if (cs == 2) send_uri = (make_uri("http://freechat.esy.es/minichat?chat=room2&nick=" + DN + mode + key));
}
webBrowser.Navigate(send_uri);
}