我有一个问题,当最终用户从HTML提交数据时
Web应用程序中的表单,他们正在从Word复制数据
包含长破折号或破折号的文档。

按照逻辑,我们尝试从数据库中读取这些数据,
将其写入Excel文件。

结果,这些字符在excel中生成,如下所示
下面,其中包含一种问号。


  Actual output : 1993 � 1995
Expected output : 1993 – 1995


我已经用Java完成了UTF-8编码,但是在excel中仍然得到了相同的输出。如何解决呢?

以下是我的代码摘录。

try {
        keyStrenghts = new String(keyStrenghts.getBytes("utf-8"));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


我正在使用JDK 6和apache poi生成excel文件。

最佳答案

如果仅限于破折号,这可能会解决您的问题:

keyStrenghts = keyStrenghts.replaceAll("\\p{Pd}", "-");


here所述,这使用正则表达式将所有破折号替换为ascii“-”。

关于java - 如何在Java中转换破折号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42549489/

10-14 10:38