【问题标题】:encode string to utf8将字符串编码为 utf8
【发布时间】:2009-12-11 13:28:41
【问题描述】:

如何使用 .NET(VB 或 C#)轻松地将字符串编码为 utf8? 例如,我需要编码一个字符串,如“This (is) my string”,结果应该是一个字符串“This+%28is%29+my+string”。

TIA

日本

【问题讨论】:

  • 那不是utf-8编码。你的意思是 urlencoding。

标签: .net urlencode encode


【解决方案1】:

这是 URL 编码,而不是 UTF8 编码。试试这个方法:

HttpUtility.UrlEncode(value)

【讨论】:

  • 谢谢,但在我的示例中,此方法返回:“This+(is)+my+string” 它似乎没有替换 ( 和 ) 字符。
  • 您为什么要这样做?您根据什么来决定哪些角色会逃脱,哪些不可以?
  • 我的客户是这样指定的,请看我下面的评论。
  • HTML 表单编码,根据 HTML 规范,是 URL 编码。它引用了 RFC 1738 (ietf.org/rfc/rfc1738.txt),其中指出 ( 和 ) 不是保留字符,因此不需要编码。
  • 非常感谢,我会将此事报告给我的客户。您是否知道他们将如何使用另一种编码标准来实现这一点?还是认为这是他们自己发明的东西?
【解决方案2】:

看起来您需要做的是 URL 编码,而不是“编码为 UTF-8”。

为此,请使用

string encodedString = System.Web.HttpUtility.UrlEncode(yourString)

(UTF-8 是一种在内部表示 Unicode 字符的机制,而不是用于替换在 URI 中使用时有意义的字符。)

【讨论】:

  • 它似乎没有替换 ( 和 ) 字符。我从客户那里找到了有关我应该使用的编码的更多信息。它应该是 HTML 表单编码,根据 UTF-8 转换格式。我该怎么做?
猜你喜欢
  • 1970-01-01
  • 2010-12-02
  • 2017-04-14
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
相关资源
最近更新 更多