不同编码格式文件上传后端解析如何做到兼容?

不同编码格式文件上传后端解析如何做到兼容?

问题描述:

不同电脑创建的excel(csv) 编码格式不同,有gbk,ISO-8859-1,utf-8 当上传后后端拿到文件流解析时,我如何兼容的去解析?不出现乱码

两方面考虑:

  1. 客户端上传文件的时候,带上文件的编码。
  2. 对于没有带上文件编码的情况,服务端在处理文件之前,根据文件的数据内容判断出文件使用的编码。

根据楼主的表述,应该是不考虑1的情况了。
如果只有楼主说的3中编码的话,可以自己编写探测程序进行排查。
GBK编码是变长双字节编码,有时候是一个字节表示一个字符,有时候是两个字节表示一个字符。
UTF-8编码是变长四字节编码,有一、二、三、四个字节表示一个字符的情况。
ISO-8859-1编码是西欧编码,定长一字节编码。如果前两个编码没有适配成功的话,那就可以适配这个编码。


楼主可以根据上述三个编码的特征进行判断。编码特征我没有写出来。这需要楼主对编码技术有一定的了解。


上述三种编码都对 ASCII 编码有兼容。如果文件的内容是 ASCII 编码的数据,适配上述三种编码的任意一种都不影响文件的数据处理。