diff options
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/connectbot/HostEditorActivity.java | 6 | ||||
-rw-r--r-- | src/org/connectbot/service/Relay.java | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/org/connectbot/HostEditorActivity.java b/src/org/connectbot/HostEditorActivity.java index dcebbf8..9f38ecc 100644 --- a/src/org/connectbot/HostEditorActivity.java +++ b/src/org/connectbot/HostEditorActivity.java @@ -252,6 +252,12 @@ public class HostEditorActivity extends PreferenceActivity implements OnSharedPr for (Entry<String, Charset> entry : Charset.availableCharsets().entrySet()) { Charset c = entry.getValue(); if (c.canEncode() && c.isRegistered()) { + String key = entry.getKey(); + if (key.startsWith("cp")) { + // Custom CP437 charset changes + charsetIds.add("CP437"); + charsetNames.add("CP437"); + } charsetIds.add(entry.getKey()); charsetNames.add(c.displayName()); } diff --git a/src/org/connectbot/service/Relay.java b/src/org/connectbot/service/Relay.java index f713210..942de88 100644 --- a/src/org/connectbot/service/Relay.java +++ b/src/org/connectbot/service/Relay.java @@ -18,6 +18,8 @@ package org.connectbot.service; +import gnu.java.nio.charset.Cp437; + import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; @@ -76,7 +78,11 @@ public class Relay implements Runnable { } public void setCharset(String encoding) { - Charset charset = Charset.forName(encoding); + Charset charset; + if (encoding.equals(Cp437.NAME)) + charset = new Cp437(); + else + charset = Charset.forName(encoding); CharsetDecoder newCd = charset.newDecoder(); newCd.onUnmappableCharacter(CodingErrorAction.REPLACE); |