来自在线测试站点的代码编码

时间:2013-12-25 23:39:02

标签: java encoding

我在某个网站上有这个代码用于IT测试。当然,经过几个问题,我想:为什么我不能将问题的代码复制到IDEA来检查答案。但是我无法复制它(Ctrl-C,右键单击等),源代码也带有标签。所以我使用Ctrl-P(Chrome)检查打印选项,它工作正常,我得到代码。我也可以在每个文本编辑器和IDEA中正确查看此代码,但无法编译它。这里对某些符号使用了一些“有趣”的编码(对于每个符号可能有所不同?),并且在用例如带有ASCII选项的notepad ++保存之后我得到了同样的问题。我使用Windows。

例如单词

  

'рublіс'

这是来自compileonline.com的例外

Go.java:2: error: unmappable character for encoding ASCII
    ??ubl????

这是问题代码的一部分

сlаss Gо {  
      рublіс statіс vоіd mаіn(String[] аrgs) { 
          A а = new A();  
          Single s = nеw Sіngle(); 
          Dоublе d = new Dоuble(); 
          } 
          }  
  class A{  

  } сlass Sіnglе ехtends A{  

  } сlass Double еxtеnds Sіngle{ 

  } 

也许它太愚蠢了,但你可以帮我把它编码成ASCII吗?有可能吗?

2 个答案:

答案 0 :(得分:2)

嗯,这就是你在那里的字符串。

我将您在上面显示的内容 - 以'public'呈现的内容 - 插入Unicode "decoding" tool。它碰巧是我遇到的第一个。这不是八个字,它是26:

U+0027 APOSTROPHE character (')
U+0026 AMPERSAND character (&)
U+0023 NUMBER SIGN character (#)
U+0031 DIGIT ONE character (1)
U+0030 DIGIT ZERO character (0)
U+0038 DIGIT EIGHT character (8)
U+0038 DIGIT EIGHT character (8)
U+003B SEMICOLON character (;)
U+0075 LATIN SMALL LETTER U character
U+0062 LATIN SMALL LETTER B character
U+006C LATIN SMALL LETTER L character
U+0026 AMPERSAND character (&)
U+0023 NUMBER SIGN character (#)
U+0031 DIGIT ONE character (1)
U+0031 DIGIT ONE character (1)
U+0031 DIGIT ONE character (1)
U+0030 DIGIT ZERO character (0)
U+003B SEMICOLON character (;)
U+0026 AMPERSAND character (&)
U+0023 NUMBER SIGN character (#)
U+0031 DIGIT ONE character (1)
U+0030 DIGIT ZERO character (0)
U+0038 DIGIT EIGHT character (8)
U+0039 DIGIT NINE character (9)
U+003B SEMICOLON character (;)
U+0027 APOSTROPHE character (')

...解析为'рublіс'。那些是HTML字符实体:

  

'
  西里尔字母小写字母(p)
  ü
  b
  升
  Cyrillic Byelorussian-Ukrainian i
  西里尔文小写字母es(c)
  '

...当由浏览器呈现时,解析为(您猜对了):'public'。浏览器解码HTML字符实体没有问题,但IDE可以。

该网站试图让复制和粘贴代码变得困难。不是万无一失,但也许足以让你不会这样做。

答案 1 :(得分:0)

有趣。我将问题中的文本复制到文本编辑器中,然后对生成的文件执行八进制转储:

0000000    c   l   ?   ?   s   s  sp   G   ?   ?  sp   {  sp  sp  nl  sp
             6c63    b0d0    7373    4720    bed0    7b20    2020    200a
0000020   sp   ?  80   u   b   l   ?  96   ?  81  sp   s   t   a   t   ?
             d120    7580    6c62    96d1    81d1    7320    6174    d174
0000040   96   ?  81  sp   v   ?   ?   ?  96   d  sp   m   ?   ?   ?  96
             d196    2081    d076    d1be    6496    6d20    b0d0    96d1
0000060    n   (   S   t   r   i   n   g   [   ]  sp   ?   ?   r   g   s
             286e    7453    6972    676e    5d5b    d020    72b0    7367
0000100    )  sp   {  sp  nl  sp  sp  sp  sp   A  sp   ?   ?  sp   =  sp
             2029    207b    200a    2020    4120    d020    20b0    203d
0000120    n   e   w  sp   A   (   )   ;  sp  sp  nl  sp  sp  sp  sp   S
             656e    2077    2841    3b29    2020    200a    2020    5320
0000140    i   n   g   l   e  sp   s  sp   =  sp   n   ?   ?   w  sp   S
             6e69    6c67    2065    2073    203d    d06e    77b5    5320
0000160    ?  96   n   g   l   e   (   )   ;  sp  nl  sp  sp  sp  sp   D
             96d1    676e    656c    2928    203b    200a    2020    4420
0000200    ?   ?   u   b   l   ?   ?  sp   d  sp   =  sp   n   e   w  sp
             bed0    6275    d06c    20b5    2064    203d    656e    2077
0000220    D   ?   ?   u   b   l   e   (   )   ;  sp  nl  sp  sp   }  sp
             d044    75be    6c62    2865    3b29    0a20    2020    207d
0000240   nl   }  sp  sp  nl   c   l   a   s   s  sp   A   {  sp  sp  nl
             7d0a    2020    630a    616c    7373    4120    207b    0a20
0000260    }  nl   ?  81   l   a   s   s  sp   S   ?  96   n   g   l   ?
             0a7d    81d1    616c    7373    5320    96d1    676e    d06c
0000300    ?  sp   ?   ?   ?  85   t   e   n   d   s  sp   A   {  sp  sp
             20b5    b5d0    85d1    6574    646e    2073    7b41    2020
0000320   nl   }  nl   ?  81   l   a   s   s  sp   D   o   u   b   l   e
             7d0a    d10a    6c81    7361    2073    6f44    6275    656c
0000340   sp   ?   ?   x   t   ?   ?   n   d   s  sp   S   ?  96   n   g
             d020    78b5    d074    6eb5    7364    5320    96d1    676e
0000360    l   e   {  sp  nl   }  nl                                    
             656c    207b    7d0a    000a                                

正如您所看到的,这里有一些“未知”字符 - 它们是UTF-16字符,碰巧显示为常规ascii,但它们实际上不是来自标准32 - 127字符集。这可能是一个防止你正在做的复制的情节。

我打算写一点翻译工具......马上回来。看起来字符集是

D0B0 - a
D0BE - o