c# - 从查询字符串中提取中文文本

标签 c# asp.net encoding cjk

我需要从 ASP.NET Web 应用程序中的查询字符串中提取中文字符。 当我尝试它时,我得到“????”而不是实际的文本。我知道我需要用 UTF-8 解码它,但它不起作用。我用过:

String text = System.Web.HttpUtility.UrlDecode(Request.QueryString["text"], System.Text.Encoding.UTF8);

但我得到“???”从操作回来。

请帮忙。

最佳答案

有两种情况。

第一种情况,您的 URL 是真实的中文,唯一获取它的函数是 Request.RawUrl(而不是 Request.QueryString["text"] ) 从 Request.RawUrl 你需要从 text=ελληνικασανκινεζικα 手动获取你的中文文本。

第二种情况,您首先要在发送 URL 字符串之前对其进行编码。在这种情况下,我使用的代码是

String text = Server.UrlDecode(Request.QueryString["text"]);

希望这对您有所帮助。

注意:如果您尝试使用 Google Chrome 进行测试,那么您在 url chrome 上键入的内容会由浏览器自动编码/解码,您看不到您发送的实际内容。尝试使用 ie 进行测试。

关于c# - 从查询字符串中提取中文文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3101823/

相关文章:

c# - 在Web API中保存图像时无法解析 "A generic error occurred in GDI+"

c# - 如何从 Facebook 获取阿拉伯语的帖子

javascript - document.getElementById ('id' ).value 在 ASP.net javascript 函数中失败

c# - 无法将 ASP.NET Core 2.1 Angular 应用程序部署到 Azure

python - 属性错误: '_Helper' object has no attribute 'encode'

c# - 如何使用 LINQ 将 .Where 添加到 .Select 到对象中?

c# - 在 RabbitMQ 的 C# 客户端中优雅地停止消息消费的优雅方法是什么?

node.js - golang base64 编码 vs nodejs 缓冲区 base64 编码

c# - 从 Outlook 的邮件编辑器中获取 HTML - ControlType.Document

Java 密码和 php mcrypt_encrypt(带 ECB 填充的 BLOWFISH 算法)