Character encoding 0xDB在哪种编码中是货币符号?

Character encoding 0xDB在哪种编码中是货币符号?,character-encoding,ascii,non-ascii-characters,euro,Character Encoding,Ascii,Non Ascii Characters,Euro,我收到了一些文件,遗憾的是,我无法获得关于它们是如何生成的信息。我需要解析这些文件 除了一个字符0xDB(十进制为219)之外,该文件完全是ASCII 显然(从文件中看),这个字符是一个货币符号。我知道是因为: 这些文件必须在出现金额的任何位置包含货币符号 文件中没有其他货币符号(既没有美元,也没有欧元,什么都没有) 每次出现0xDB时,它都在某个数量旁边 我认为,在这些文件中,0xDB应该代表欧元符号(实际上,很可能这个0xDB出现在任何应该出现欧元符号的地方) “文件”命令说明了有关文件

我收到了一些文件,遗憾的是,我无法获得关于它们是如何生成的信息。我需要解析这些文件

除了一个字符0xDB(十进制为219)之外,该文件完全是ASCII

显然(从文件中看),这个字符是一个货币符号。我知道是因为:

  • 这些文件必须在出现金额的任何位置包含货币符号
  • 文件中没有其他货币符号(既没有美元,也没有欧元,什么都没有)
  • 每次出现0xDB时,它都在某个数量旁边
我认为,在这些文件中,0xDB应该代表欧元符号(实际上,很可能这个0xDB出现在任何应该出现欧元符号的地方)

“文件”命令说明了有关文件的以下内容:

ISO-8859 English text, with CRLF, LF line terminators
hexdump提供了以下功能:

00000030  71 75 61 6e 74 20 db 32  2e 36 30 0a 20 41 49 4d  |quant .2.60. AIM|
                            ^^                                     ^
这些文件都是正常格式化/可解析的。事实上,除了那个奇怪的0xDB角色,我得到的所有信息都很好

有人知道发生了什么事吗?货币符号(据说是欧元符号)是如何变成0xDB的

它既不是ISO-8859-1(也称为ISO拉丁语1)也不是ISO-8859-15,因为在这两种情况下,代码点219对应于“Û”(就像Unicode代码点219是“带扬抑符的拉丁大写字母U”)


它不是扩展的ASCII。

它可能是

0xDB表示字符编码中的欧元符号。

它是MacRoman。事实上,它必须是,那是

这是给MacRoman的建议。

使用,您可以了解:

$ macroman 0xDB
MacRoman DB  ⇒  U+20AC  ‹€›  \N{ EURO SIGN }
你也可以走另一条路:

$ macroman U+00E9
MacRoman 8E  ⇐  U+00E9  ‹é›  \N{ LATIN SMALL LETTER E WITH ACUTE }
我们知道,U+20AC欧元符号确实是一种货币符号,因为我们的输出:

$ uniprops -a U+20AC
U+20AC <€> \N{ EURO SIGN }:
    \pS \p{Sc}
    All Any Assigned InCurrencySymbols Common Zyyy Currency_Symbol Sc Currency_Symbols S Gr_Base Grapheme_Base Graph GrBase Print Symbol X_POSIX_Graph X_POSIX_Print
    Age=2.1 Bidi_Class=ET Bidi_Class=European_Terminator BC=ET Block=Currency_Symbols Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered CCC=NR Canonical_Combining_Class=NR Script=Common Decomposition_Type=None DT=None East_Asian_Width=A East_Asian_Width=Ambiguous EA=A Grapheme_Cluster_Break=Other GCB=XX Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=PR Line_Break=Prefix_Numeric LB=PR Numeric_Type=None NT=None Numeric_Value=NaN NV=NaN Present_In=2.1 IN=2.1 Present_In=3.0 IN=3.0 Present_In=3.1 IN=3.1 Present_In=3.2 IN=3.2 Present_In=4.0 IN=4.0 Present_In=4.1 IN=4.1 Present_In=5.0 IN=5.0 Present_In=5.1 IN=5.1 Present_In=5.2 IN=5.2 Present_In=6.0 IN=6.0 SC=Zyyy Script=Zyyy Sentence_Break=Other SB=XX Sentence_Break=XX Word_Break=Other WB=XX Word_Break=XX _X_Begin
$uniprops-a U+20AC
U+20AC\N{欧元符号}:
\pS\p{Sc}
所有指定的发生符号通用ZYY货币符号Sc货币符号S Gr Gr GRU基本图形GRU基本图形Gr基本打印符号X_POSIX_图形X_POSIX_打印
年龄=2.1 Bidi\u Class=ET Bidi\u Class=ET Bidi\u Class=European\u Terminator BC=ET Block=Currency\u Canonical\u combing\u Class=0 Canonical\u combing\u Class=Not\u Reordered CCC=NR Canonical\u combing\u Class=NR Script=Common Decomposition\u Type=None DT=None East\u Asian\u widt=A East\u Asian\u widt=A东亚\u widt\u widt=A东亚\u widt=fundicative EA=A Grapheme\u cl韩国语音节类型=韩国语音节类型=不适用HST=不加入组JG=不加入组加入类型=不加入JT=加入类型=不加入类型=不加入类型=线中断=线中断=前缀数字LB=PR数字类型=无NT=无数字值=NaN NV=NaN当前值=2.1当前值=3.0当前值=3.1当前值=3.1当前值=3.2当前值=3.2当前值现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时的现在时

它不是任何ISO-8859-*变体,也不是任何标准的Microsoft代码页。+1。。。这很有道理,这些文件曾一度被处理/重新传输到Mac电脑。你觉得这个怎么样?我试着用谷歌搜索了一下,但什么也找不到……我想可能是上面列出的字符集之一,只需检查每个字符的0xDB。因为他知道要映射到哪个字符,它比搜索字符集更容易。这是一个非常有用的工具,用于查找字符->字符集映射!