diff --git a/src/main/java/org/stfm/texdoclet/HTMLtoLaTeXBackEnd.java b/src/main/java/org/stfm/texdoclet/HTMLtoLaTeXBackEnd.java
index 128c655..92a5b18 100755
--- a/src/main/java/org/stfm/texdoclet/HTMLtoLaTeXBackEnd.java
+++ b/src/main/java/org/stfm/texdoclet/HTMLtoLaTeXBackEnd.java
@@ -10,6 +10,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
+import java.nio.charset.Charset;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Hashtable;
@@ -559,58 +560,80 @@ public class HTMLtoLaTeXBackEnd extends HTMLEditorKit.ParserCallback {
i++;
}
break;
- // case 'æ':
- case '¾':
- if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
- ret.append("\\ae\\ ");
- i++;
+ // case 0xc38a:
+ case 0xc3a6:
+ if (Charset.defaultCharset().name().equals("UTF-8")) {
+ if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
+ ret.append("\\ae\\ ");
+ i++;
+ } else {
+ ret.append("\\ae ");
+ }
} else {
- ret.append("\\ae ");
+ ret.append((char) c);
}
break;
- // case 'Æ':
- case '®':
- if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
- ret.append("\\AE\\ ");
- i++;
+ case 0xc386:
+ if (Charset.defaultCharset().name().equals("UTF-8")) {
+ if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
+ ret.append("\\AE\\ ");
+ i++;
+ } else {
+ ret.append("\\AE ");
+ }
} else {
- ret.append("\\AE ");
+ ret.append((char) c);
}
break;
- // case 'å':
- case 'Œ':
- if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
- ret.append("\\aa\\ ");
- i++;
+ // case 0xc382:
+ case 0xc3a5:
+ if (Charset.defaultCharset().name().equals("UTF-8")) {
+ if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
+ ret.append("\\aa\\ ");
+ i++;
+ } else {
+ ret.append("\\aa ");
+ }
} else {
- ret.append("\\aa ");
+ ret.append((char) c);
}
break;
- // case 'Å':
- case '':
- if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
- ret.append("\\AA\\ ");
- i++;
+ case 0xc385:
+ if (Charset.defaultCharset().name().equals("UTF-8")) {
+ if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
+ ret.append("\\AA\\ ");
+ i++;
+ } else {
+ ret.append("\\AA ");
+ }
} else {
- ret.append("\\AA ");
+ ret.append((char) c);
}
break;
- // case 'ø':
- case '¿':
- if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
- ret.append("\\o\\ ");
- i++;
+ // case 0xc2af:
+ case 0xc3b8:
+ if (Charset.defaultCharset().name().equals("UTF-8")) {
+ if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
+ ret.append("\\o\\ ");
+ i++;
+ } else {
+ ret.append("\\o ");
+ }
} else {
- ret.append("\\o ");
+ ret.append((char) c);
}
break;
- // case 'Ø':
- case '¯':
- if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
- ret.append("\\O\\ ");
- i++;
+ // case 0xc3bf:
+ case 0xc398:
+ if (Charset.defaultCharset().name().equals("UTF-8")) {
+ if (i < str.length() - 1 && str.charAt(i + 1) == ' ') {
+ ret.append("\\O\\ ");
+ i++;
+ } else {
+ ret.append("\\O ");
+ }
} else {
- ret.append("\\O ");
+ ret.append((char) c);
}
break;
case '^':