15

我在 HTTP POST 请求中发送一些 JSON。JSON 对象中的一些文本应该有上标。

如果我像这样在 C# 中创建我的字符串:

string s = "here is my superscript: \u00B9";

...它将 \u00B9 转换为实际的上标 1,这会破坏我的 JSON。我希望 \u00B9 完全按照我在字符串中写入的方式显示,而不是作为上标。

如果我添加一个转义字符,那么它会显示为:“这是我的上标:\\u00B9”

我不想使用转义字符,但我也不希望它被转换为实际的上标。有没有办法让 C# 不进行 Unicode 转换并将其保留为字面意思:“\u00B9”?

4

3 回答 3

27

如果我正确理解您的问题...在字符串前添加 at 符号 (@) 以避免处理转义序列

 string s = @"here is my superscript: \u00B9";

http://msdn.microsoft.com/en-us/library/362314fe(v=vs.80).aspx

于 2013-06-24T16:41:09.387 回答
11

我喜欢@NinjaNye 的回答,但另一种方法是使用双反斜杠使其文字化。因此string s = "here is my superscript: \\u00B9"

于 2013-08-21T10:52:05.677 回答
2

建议您在发送到服务器之前对字符串进行编码。您可以在客户端使用 base64 或 URLEncode 进行编码,并在服务器端进行解码。

于 2013-06-24T16:38:35.773 回答