2011-07-03 48 views

回答

11

ASCII是一種7位編碼方案,沒有「8位ASCII」。

但是,許多編碼是ASCII兼容的,有些是8位透明的(即每個二進制序列映射到有效的字符串,反之亦然,如果您通過字符通道發送二進制數據而不編碼base64左右)。如果你只是想與ASCII兼容,UTF-8是最好的選擇;如果你需要8位透明度,ISO-8859-1

請注意,上述建議僅在您希望傳輸純ASCII字符串或8位二進制字符串時纔有用。在大多數情況下,您實際上想要傳輸任意字符串,並且無法找到適當的編碼。

+0

非常感謝。 「8位兼容」和「8位透明」有什麼區別? – Martin08

+0

@ Martin08新增了對答案的解釋。我的意思是(7位)ASCII兼容 – phihag

+0

@Ted Hopp你有90%的原因。想象一下**頻道**上方的文字頻道,你就在那裏。 – phihag

3

沒有「8位ASCII」這樣的東西。 ASCII有幾個8位「擴展」,包括ISO-8859-1Windows-1252。這些可能是最常見的,但它們並不相同。你真的需要找出究竟是哪種編碼是預期的。

這兩個名字都可用via Java中的這些名稱 - 至少它們在我的JDK安裝中。 (例如,您可能會發現Windows-1252在Linux安裝上不可用。)

+0

這裏有擴展的ascii,即在這個頁面的底部:http://www.ascii-code.com/ ascii還有很多8位變體:https://en.wikipedia.org/wiki/ASCII#8位 –

+0

@Tamas:沒有人正確地命名爲「擴展ASCII」 - 只有幾個8位擴展名,每個擴展名都可能稱爲「擴展ASCII」。換句話說,如果某些東西將自己標識爲使用「擴展ASCII」,那幾乎是無用的。 –