我发现了几个类似标题的问题,但似乎无法使用任何问题来解决我的问题。我似乎无法加载我的.csv文件:
val source = io.Source.fromFile("C:/mon_usatotaldat.csv")
返回:
java.nio.charset.UnmappableCharacterException:输入长度= 1
所以我试过了:
val source = io.Source.fromFile("UTF-8", "C:/mon_usatotaldat.csv")
得到了:
java.nio.charset.IllegalCharsetNameException:C:/mon_usatotaldat.csv
如果文件不是UTF-8格式,我认为UTF-8不起作用,所以这很有道理,但我不知道下一步该做什么。
我设法发现编码是windows-1252使用:
val source = io.Source.fromFile("C:/mon_usatotaldat.csv").codec.decodingReplaceWith("UTF-8")
但这并没有达到我的预期,即将文件转换为UTF-8。我不知道如何使用它。
我尝试过的另一件事是:
val source = io.Source.fromFile("windows-1252","C:/mon_usatotaldat.csv")
但那又回来了:
java.nio.charset.IllegalCharsetNameException:C:/mon_usatotaldat.csv
请帮忙。提前谢谢。
答案 0 :(得分:3)
首先尝试将您的Excel文件映射到UTF-8,然后尝试@RequestMapping(value = "/url", method = RequestMethod.GET)
要映射到UTF-8,请尝试:
(1)打开一个Excel文件,其中包含信息(.xls,.xlsx)
(2)在Excel中,选择" CSV(逗号分隔)(* .csv)作为文件类型 并保存为该类型。
(3)在NOTEPAD中(在"程序"和开始中的附件下找到) 菜单),在记事本中打开已保存的.csv文件
(4)然后选择 - >另存为...并在"底部另存为"框, 有一个标记为"编码"的选择框。选择UTF-8(不要使用 ANSI或你丢失所有口音等)。选择UTF-8后,保存 该文件与原始文件名略有不同。
此文件采用UTF-8格式,并保留所有字符和重音符号,例如可以导入MySQL和其他数据库程序。
参考:Excel to CSV with UTF8 encoding
希望这有帮助!
答案 1 :(得分:1)
设置InputStreamReader
以正确阅读Windows-1252。不要打扰中间的UTF-8。