Java调用mongoimport导入含特殊字符CSV至MongoDB乱码问题求助
解决mongoimport导入CSV时特殊字符变为问号的问题
这个问题大概率是编码不匹配导致的——mongoimport默认会使用系统默认编码(比如Windows上的GBK)读取CSV文件,而你的CSV文件包含∠、Δ这类非ASCII特殊字符,且文件本身是UTF-8编码的,自然会被错误解析成问号。
解决方案:显式指定UTF-8编码
你只需要在mongoimport命令中添加--encoding utf-8参数,强制工具用UTF-8编码读取文件。修改后的代码如下:
String filesavedpath = "D://nithin" + "/" + csvfilename; String command = "mongoimport --db dbname --collection collectionname -f quizname,question,option_1,option_2,option_3,option_4,answer --type csv --encoding utf-8 --file " + filesavedpath;
额外注意事项
- 确认CSV文件本身是UTF-8编码:可以用VS Code或记事本打开文件,查看右下角的编码标识,如果不是UTF-8,选择「另存为」,编码选UTF-8后再重新导入。
- Windows环境下的额外处理:如果执行命令时仍有编码问题,可以先在命令行执行
chcp 65001切换到UTF-8编码,再运行mongoimport命令,进一步避免编码冲突。
验证效果
修改后重新导入,你的question字段应该会正确保留∠A、ΔABC这类特殊字符,不会再被替换成问号了。
内容的提问来源于stack exchange,提问作者sunikumar
相关产品推荐
相关产品推荐

