我在某个网站上有这个代码用于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吗?有可能吗?
答案 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
等