通过短信和电子邮件发送日语文本

时间:2018-09-24 10:37:27

标签: java android smsmanager cjk

我需要在某些事件触发时发送短信和电子邮件。 当我用英语测试时,它工作正常。但是,当我将文本更改为日语时,它会产生某种垃圾消息。我正在使用Java作为编程语言。

我尝试了一些解决方案,例如更改字符集首选项并在运行配置中添加-Dfile.encoding=UTF8,但似乎不起作用。

在特定情况下不起作用。 当我将java类中的字符串硬编码为日语字符串时,它可以正常工作。但是,当我尝试从属性文件读取文件时,它会产生一些垃圾字符。

1 个答案:

答案 0 :(得分:0)

最后我解决了这个问题。正如我在问题本身中所指出的那样,问题主要出在读取 .property 文件中。当我尝试对字符串进行硬编码时,它可以正常工作。

正如@Henry在他的评论中建议的那样,所有.property文件仅包含ISO8859-1个字符。因此,我遵循了从I SO8859-1 format to UTF.转换字符串的过程 只需使用这一行代码即可实现。

String utf8String = new String(Charsets.ISO_8859_1.encode("your string").array()).

尽管它解决了我的目的,但是我认为这不是解决问题的干净方法。 对于我的场景,我必须添加一个新配置,而不是通过上述方式。我将字符串保存在单独的文本文件中,然后从文件中读取。

        String filePath = "filename.txt"
        try {
            BufferedReader br = new BufferedReader(new FileReader(filePath));
            StringBuilder sb = new StringBuilder();
            String line = br.readLine();
            while (line != null) {
                sb.append(line);
                sb.append("\n");
                line = br.readLine();
            }
            return sb.toString();
        } catch (FileNotFoundException e) {
            log.error("file not found ", e);
        } catch (IOException e) {
            log.error("Error occurred ", e);
        }

它无需使用任何破解程序即可将一个CharSet转换为另一种字符集即可解决该问题。