代码之家  ›  专栏  ›  技术社区  ›  csexton

逃逸C++

  •  1
  • csexton  · 技术社区  · 16 年前

    我正在寻找一种在C++中进行URI逃逸的好方法,这对于跨平台项目是合理的。

    我想要一个接受如下字符串的函数:

    L"jiayou加油"
    

    并返回:

    L"jiayou%E5%8A%A0%E6%B2%B9"
    

    我用了一些类似的东西 this ,稍作修改以使用wchar\u t。但是,这需要在printf调用之前从utf-16转换为utf-8。这让我陷入了字符编码的地狱。

    这和我研究过的所有其他方法都感觉是错误的。在C++中有一个好方法可以逃出WSCORE吗?

    1 回复  |  直到 16 年前
        1
  •  3
  •   Michael Burr    16 年前

    无论你做什么,你都会陷入某种字符编码的地狱(这就是字符编码的方式)。

    从…起 http://labs.apache.org/webarch/uri/rfc/rfc3986.html#characters :

    因此,在某个时刻,您需要将URI转换为适合于您将URI发送到的任何对象的编码。如果这是UTF8,那么最好在执行百分比编码之前进行转换,这样就可以使用已经找到的库例程。如果它不是UTF8,那么您需要知道URI的接收者期望的是什么(同样,这是字符集编码的方式-您必须知道其他人期望的是什么,或者能够告诉他),这样您就可以对它期望的字符集编码中的字符进行百分比编码。