文件编码 - 这是什么类型的编码?

时间:2013-12-13 14:35:22

标签: css character-encoding intellij-idea

我最近用maven 3.1编译了项目。就在源代码变成这个之后。

这是CSS文件的示例。我正在使用IntelliJ 13。

如何将其转换为人类可读的格式?

1 个答案:

答案 0 :(得分:1)

要稍微扩展我的上一条评论 - 我将问题的文本复制到文本编辑器中并保存。然后我用Mac / Linux命令od -cx查看它,它尽可能打印字符和十六进制表示。对于你的问题,前几行给出了:

od -cx junk.txt 
0000000    I       r   e   c   e   n   t   l   y       c   o   m   p   i
             2049    6572    6563    746e    796c    6320    6d6f    6970
0000020    l   e   d       p   r   o   j   e   c   t       w   i   t   h
             656c    2064    7270    6a6f    6365    2074    6977    6874
0000040        m   a   v   e   n       3   .   1   .       J   u   s   t
             6d20    7661    6e65    3320    312e    202e    754a    7473
0000060        a   f   t   e   r       t   h   a   t       s   o   u   r
             6120    7466    7265    7420    6168    2074    6f73    7275
0000100    c   e       c   o   d   e   s       t   u   r   n   e   d    
             6563    6320    646f    7365    7420    7275    656e    2064
0000120    i   n   t   o       t   h   i   s   .  \n  \n  \n   �  **  **
             6e69    6f74    7420    6968    2e73    0a0a    ef0a    bdbf
0000140    �  **  **   �  **  **   �  **  **   �  **  **   �  **  **   �
             bfef    efbd    bdbf    bfef    efbd    bdbf    bfef    efbd

正如您所看到的,字节是交换的(文件中的前两个字节是0x49 0x20表示“I space”,但它们显示为“向后”(小端表示)。同样的事情可以是看看剩下的“可读”字符;当你看到“不可读”字符时,你会发现它们(按照正确的顺序)由字节组成

0xef 0xbf 0xbd

一遍又一遍地重复。这是“通用替换字符”(例如参见https://stackoverflow.com/a/4391782/1967396http://en.wikipedia.org/wiki/Specials_%28Unicode_block%29) - 用于表示无法显示的字符(当它成为钻石中的问号时)显示)。据推测,从原始文件到Stack Overflow的多次复制/粘贴操作导致了这种替换。用二进制转储查看原始文件我猜你会看到不同的字符表示;也许你可以用它做点什么,但也许这就是Maven压制你文件的方式。