aboutsummaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-rw-r--r--src/org/connectbot/HostEditorActivity.java6
-rw-r--r--src/org/connectbot/service/Relay.java8
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);