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

如何使用C++将UTF-16转换成UTF-8?

  •  0
  • LocketGoma  · 技术社区  · 6 年前
    • 我已经知道“codecvt”、“WideCharToMultiByte”和一些人。

    我用韩语。比如说。”ìíìì'.

    它可以插入普通的字符串类。正当

    但就我而言。如果我有文件::'test.txt'{in::'

    并读取'test.txt'和getline(),

    (test.txt file read)
    string temp;
    getline(file pointer, temp);
    cout<<temp;
    

    我知道这是性格问题。所以我尝试了MultiByteToWideChar方法。

    好啊它很好地工作。

    但我不想要这个。

    所以,我想问你一个问题。

    我想要这个款式

    wstring temp=“ìíìì”

    字符串temp2=将_转换为_字符串(temp);

    -&燃气轮机;

    字符串temp2=“ìíìì”

    1 回复  |  直到 6 年前
        1
  •  2
  •   Community Ian Goodfellow    3 年前

    如评论中所述,您可以看到 Convert C++ std::string to UTF-16-LE encoded string

    但考虑到你认为你有 wstring 为了保存韩语字符串,您避免了区分UTF-16-LE和UTF-16-BE的麻烦,并且可以很容易地找到字符串中每个韩语字符的Unicode代码点。因此,您的问题归结为找到任何代码点的UTF-8表示形式。这并不难,见第3页,共页 https://www.rfc-editor.org/rfc/rfc3629 (也是维基百科 https://en.wikipedia.org/wiki/UTF-8 ).

    示例代码在中 Convert Unicode code points to UTF-8 and UTF-32