【问题标题】:JSON encode URLs in C# like what PHP doesJSON 编码 C# 中的 URL,就像 PHP 所做的那样
【发布时间】:2017-02-19 06:48:53
【问题描述】:

当我在 PHP 中使用 json_encode 函数将对象编码为 json 格式时,它会将输出中的 url 更改为带有转义字符的字符串,例如 http:\/\/example.com\/apps\/images\/image01.jpg 但是 C# 会按原样返回 url,即 http://example.com/apps/images/image01.jpg 并且不会添加任何转义字符。由于我要实现与旧 PHP Web 服务相同的 Web 服务,因此我想知道如何在 C# 中将 url 字符串编码为与 PHP 字符串相同。

【问题讨论】:

标签: c# php json string


【解决方案1】:

你不需要做任何事情。如果您将字符串写入文件(或控制台),即从 PHPC# 写入文件(或控制台),您将获得相同的结果而无需更改任何内容。

如果您真的想用\/ 替换/,请使用String.Replace() 方法:

string likePhp = strCSharp.Replace("/", @"\/");

【讨论】:

    【解决方案2】:

    你不应该需要转义的斜杠,所以告诉 PHP 不要用JSON_UNESCAPED_SLASHES 转义它们。为什么在不需要时尝试破解 C# JSON 以转义斜杠。:

    echo json_encode('http://example.com/apps/images/image01.jpg', JSON_UNESCAPED_SLASHES);
    

    产量:

    http://example.com/apps/images/image01.jpg
    

    【讨论】:

    • @DavidL:是的,我做到了。回声是一个明显表明您不需要转义的示例。现在 PHP 和 C# JSON 编码相同。当您不需要在 PHP 中转义时,为什么要在 PHP 中转义并在 C# 中进行一些转义。
    猜你喜欢
    • 2015-12-24
    • 2012-04-29
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多