encoding issues fix

This commit is contained in:
stfm
2013-05-07 12:07:27 +02:00
parent 746ed12019
commit 997e7b7007

View File

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