【问题标题】:passing URL parameter with Turkish characters使用土耳其字符传递 URL 参数
【发布时间】:2013-02-27 16:13:51
【问题描述】:

我正在使用土耳其语字符从 jQuery 向 Web 服务发送请求。在我从 jQuery 发送它之前,我 encodeURI 土耳其字符串,并尝试在 C# 的 Web 服务中对其进行解码。但这不起作用。

这里是 jQuery 代码

  $.ajax({url: 'http://xxxxxx.com/medbul/HoverCard_WebService.aspx?q=' + encodeURI(span_text),

这是网络服务中的代码

  HttpUtility.UrlDecode(Request.QueryString["q"].ToString())

但这不起作用。有什么办法吗?

我的意思是如果我传递英文字符,它会做它应该做的事情,但是当我传递土耳其字符时,它不会显示结果。我没有显示所有代码,因为没有必要。我认为我在 Javascript 中的编码和 C# 中的解码存在问题。或者我应该使用其他逻辑吗?

【问题讨论】:

  • “不工作”是什么意思?
  • 我在上面添加了一些解释。我希望现在很清楚
  • 当您使用土耳其语字符时,什么都没有出现?您收到任何错误消息吗?

标签: jquery asp.net urlencode


【解决方案1】:

当您赢得从 URL 发送 UTF-8 作为您的语言时,正确的是使用 encodeURIComponent

所以把你的代码改成

$.ajax({url: 'http://xxxxxx.com/medbul/HoverCard_WebService.aspx?q=' + encodeURIComponent(span_text),

它会起作用的。

Comparing escape(), encodeURI(), and encodeURIComponent()

【讨论】:

  • 它不起作用。我放了 alert(encodeURIComponent(span_text)) ,我可以看到它完美编码,但 HoverCard_WebService.aspx 不返回任何值
  • @Borsel 是的,它的工作,我使用它。我现在再次检查一些细节并再次重播您。
  • @Borsel 我找不到任何明显的问题,我相信您需要进行一些小测试,看看是什么破坏了它(甚至更改 ',在 url 上带有 ")。替代你可以制作'post'并将它们发送到数据参数而不是直接发送到url。如果你喜欢我可以给你发代码。
  • 是的,你是对的。但现在我对数据库有一个不同的问题。我在哪里做一个常规的 Select * from Categories where catname like '%Göğüs%' 它不返回任何东西。我想我必须对数据库做点什么
猜你喜欢
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 2014-08-09
  • 2015-01-07
  • 2016-10-26
  • 2016-10-09
  • 2020-10-02
  • 2018-08-03
相关资源
最近更新 更多