如何解码像这样的unicode字符?

时间:2012-10-02 23:03:57

标签: unicode character-encoding

也许是一个愚蠢的问题,但我喜欢解码这些unicode字符。我该怎么做?

  

ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇̚̚̚̚̚̚̚̚̚̚̚̚   ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇͛̍ͪͩ͒͆̓̉̽̍̏ͮ̈ͦͤ͗̅͗̄̐ͬͮͣͩͮ̆̓͛ͯͤͣͧ̔ͮ̈ͯ̅ͫ̈̊͛͐̓̇̚̚̚̚̚̚̚̚̚̚̚̚

我希望能够将它们解码为/ uXXXX语法,以便我可以在网页中使用它们......

2 个答案:

答案 0 :(得分:1)

如果你正在使用Windows,你可以尝试将其复制并粘贴到角色地图应用程序中。

答案 1 :(得分:1)

在C ++中(带有支持C ++ 11的实现,例如Xcode中包含的实现):

#include <iostream>
#include <iomanip>
#include <string>
#include <cstdint>

int main() {
    std::u32string s = U"ͫ̈́̊̃͛͐̎̂̓̃̇͛̍ͪͩ́͒͆̓̉̽̍̏͂ͮ̈́ͦ̀ͤ͗̅͗̄̐̃ͬͮͣͩͮ̆̓́͛ͯͤͣͧ̔ͮ̈́ͯ̅۫ͫ̈́̊̃͛͐̎̂̓̃̇͛̍ͪͩ́͒͆̓̉̽̍̏͂ͮ̈́ͦ̀ͤ͗̅͗̄̐̃ͬͮͣͩͮ̆̓́͛ͯͤͣͧ̔ͮ̈́ͯ̅۫ͫ̈́̊̃͛͐̎̂̓̃̇͛̍ͪͩ́͒͆̓̉̽̍̏͂ͮ̈́ͦ̀ͤ͗̅͗̄̐̃ͬͮͣͩͮ̆̓́͛ͯͤͣͧ̔ͮ̈́ͯ̅۫ͫ̈́̊̃͛͐̎̂̓̃̇͛̍ͪͩ́͒͆̓̉̽̍̏͂ͮ̈́ͦ̀ͤ͗̅͗̄̐̃ͬͮͣͩͮ̆̓́͛ͯͤͣͧ̔ͮ̈́ͯ̅۫ͫ̈́̊̃͛͐̎̂̓̃̇̚̚̚̚̚̚̚̚̚̚̚̚";

    std::cout.fill('0');
    std::cout << std::hex;

    for (auto c : s)
        std::cout << "\\u" << std::setw(4) << static_cast<std::uint_least32_t>(c);
}