带有 space 的大写文本。这是一种什么样的文本格式?

Capital text with space. What kind of text format is this?

我有一个看起来像这样的歌曲列表。

GIFT〜白〜(冬恋/君の歌をうたう)【完全生産限定盤】

这里的拉丁字母 GIFT 看起来很奇怪,我不知道如何让它像普通文本一样阅读。例如,如果您复制这个词,它在字母之间没有 space 或其他任何内容,但似乎采用不同的文本格式。

谁能帮我把它转换成普通文本?

这些是 Unicode 字符。 例如,'G' 是

Unicode Character 'FULLWIDTH LATIN CAPITAL LETTER G' (U+FF27)
UTF-8 (hex) 0xEF 0xBC 0xA7 (efbca7)

here

您可以将字符串复制到Notepad++,然后将其转换为十六进制代码(Extensions/Converter/ASCII->HEX)

并得到 EFBCA7EFBCA9EFBCA6EFBCB4 单词 'GIFT'

然后搜索“Unicode EFBCA7”以找到上述信息。

这可以转换成普通的拉丁字符。例如在 .Net 中有 Normalize 函数:

using System;
using System.Text;
                    
public class Program
{
    public static void Main()
    {
        Console.WriteLine("Unicode:");
        String text = "GIFT";
        Console.WriteLine(text);
        byte[] bytes = Encoding.UTF8.GetBytes(text);
        foreach(var b in bytes)
            Console.Write("{0:X} ", b);

        Console.WriteLine("\nASCII:");
        String text2 = text.Normalize(NormalizationForm.FormKC);
        Console.WriteLine(text2);
        bytes = Encoding.UTF8.GetBytes(text2);
        foreach(var b in bytes)
            Console.Write("{0:X} ", b);
    }
}

试试 .Net Fiddle 这将打印出:

Unicode:
GIFT
EF BC A7 EF BC A9 EF BC A6 EF BC B4
ASCII:
GIFT
47 49 46 54

其他语言应该也有类似的功能吧。现在你知道你在找什么了。

搜索词“convert unicode FULLWIDTH LATIN”将为您提供帮助。

另见

当找不到相应的函数时,您也可以自己进行转换,毕竟字符代码只是正常 ASCII/UTF-8 拉丁字符集的偏移量。请参阅示例 here