包含类似“的字符的名称”Â&引用;正在将filewriter写入csv。如何用java删除它们?

包含类似“的字符的名称”Â&引用;正在将filewriter写入csv。如何用java删除它们?,java,encoding,character-encoding,Java,Encoding,Character Encoding,当我通过java创建名为“Men's Memorial®ELITE Bib Short”的csv文件时,它将“Men's Memorial®ELITE Bib Short”存储在csv中。所以我必须通过java文件从csv文件中删除“the” public boolean writeProductsToFile() { final List<ProductModel> products = getListrakDao().getProducts(); final S

当我通过java创建名为“Men's Memorial®ELITE Bib Short”的csv文件时,它将“Men's Memorial®ELITE Bib Short”存储在csv中。所以我必须通过java文件从csv文件中删除“the”

public boolean writeProductsToFile()
{
    final List<ProductModel> products = getListrakDao().getProducts();

    final String filePath = getFilePath() + getProductFileName();
    final File file = new File(filePath);
    FileWriter writer = null;
    writer = new FileWriter(file);
    for (final ProductModel productModel : products)
    {
            productData.append(StringEscapeUtils.unescapeHtml("\"" + productModel.getName() + "\""));
            productData.append(getFieldSeparator());
            writer.write(productData.toString());
    }
}
public boolean writeProductsToFile()
{
最终列表产品=getListrakDao().getProducts();
最终字符串filePath=getFilePath()+getProductFileName();
最终文件=新文件(文件路径);
FileWriter=null;
writer=新文件编写器(文件);
用于(最终产品型号产品型号:产品)
{
productData.append(StringEscapeUtils.unescapethtml(“\”+productModel.getName()+“\”);
append(getFieldSeparator());
write(productData.toString());
}
}
这是我的代码…其中“baseProduct.getName()”是获取产品名称的代码。
数据库中的产品名称为“男士纪念®ELITE围兜短款”。但在csv中,它被写为“男士纪念精英围兜短款”。那么,我如何删除像“的”这样的字符呢。所以csv中的名称应该与数据库中的名称完全相同

在某种程度上,这是在黑暗中拍摄的,但是

作为一般实践,尽量明确使用的字符集

而不是

FileWriter writer = null;
writer = new FileWriter(file);

(为简洁起见,省略了导入,
StandardCharsets
需要Java 7或更高版本)

这允许在写入时主动控制使用的字符集。如果未设置,系统将使用默认字符集,这可能不合适。如果UTF-8不是您想要的,请尝试其他方法,如
ISO_8859_1


读取CSV文件时,请确保所使用的读卡器/编辑器支持并使用所使用的字符集。否则,您会看到奇怪的字符,就像您看到的一样。

您能告诉我们您的努力吗?在我看来,您不应该尝试删除结果文件中的坏字符,而应该首先找到它写入文件的原因(并正确处理该行为)我已经编辑了我的问题。我这样做时可能会重复。这给了我一个错误:构造函数FileOutputStream(文件,字符集)未定义。@pnegi我的回答解决了你的问题吗?如果是,请接受答案。非常感谢。
final Charset utf8 = java.nio.charset.StandardCharsets.UTF_8;
final Writer writer = new OutputStreamWriter(new FileOutputStream(file), utf8);