Windows のすべての特殊文字を Unicode に相当するものに変換しようとしています。ユーザーがリッチ テキストを保存すると、それが Java Emailer を介して受信者に電子メールで送信される Flex アプリケーションがあります。ただし、電子メールに ? として表示される Word の特殊文字が引き続き使用されます。
これまで私は試しました
 private String replaceWordChars(String text_in) {
    String s = text_in;
    // smart single quotes and apostrophe
    s = s.replaceAll("[\\u2018|\\u2019|\\u201A]", "\'");
    // smart double quotes
    s = s.replaceAll("[\\u201C|\\u201D|\\u201E]", "\"");
    // ellipsis
    s = s.replaceAll("\\u2026", "...");
    // dashes
    s = s.replaceAll("[\\u2013|\\u2014]", "-");
    // circumflex
    s = s.replaceAll("\\u02C6", "^");
    // open angle bracket
    s = s.replaceAll("\\u2039", "<");
    // close angle bracket
    s = s.replaceAll("\\u203A", ">");
    // spaces
    s = s.replaceAll("[\\u02DC|\\u00A0]", " ");
    return s;
これは機能しますが、すべての Windows-1252 文字を同等の UTF-16 に手動でエンコードしたくありません (デフォルトの Java 文字セットがそうであると仮定します)。
しかし、私たちのユーザーは、Java だけでは処理できない Microsoft Word の文字を見つけ続けています。だから私は検索して検索し、この例を見つけました
private String replaceWordChars(String text_in) {
    String s = text_in;
    try {
        byte[] b = s.getBytes("Cp1252");
        byte[] encoded = new String(b, "Cp1252").getBytes("UTF-16");
        s = new String(encoded, "UTF-16");
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return s;
しかし、Eclipse デバッガーでエンコーディングが行われるのを見ても、何も変わりません。
Microsoft の素敵な Java エンコーディングに対処するには、簡単な解決策が必要です。
何かご意見は?