导出csv文件有乱码
来源:互联网 发布:美工培训费用 编辑:程序博客网 时间:2024/05/05 17:58
项目中生成csv文件,里面出现中文乱码问题,后来加了一行out.write(0xFEFF)后问题就解决了。
res.setContentType("application/x-xls");
res.setHeader("Content-disposition", "attachment;filename=" + name+ ".csv");
out.write(0xFEFF);
out.write(sb);
这里有一个概念:Byte Order Mark
BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。
在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。下表列出了不同编码所对应的BOM。
BOM Encoding
EF BB BF UTF-8
FE FF UTF-16 (big-endian)
FF FE UTF-16 (little-endian)
00 00 FE FF UTF-32 (big-endian)
FF FE 00 00 UTF-32 (little-endian)
BOM的来历
为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字符开头。这作为一个“特征符”或“字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序。
Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。
不同的编辑工具对BOM的处理也各不相同。使用Windows自带的记事本将文件保存为UTF-8编码的时候,记事本会自动在文件开头插入BOM(虽然BOM对UTF-8来说并不是必须的),但是editplus就不会这样做。
res.setContentType("application/x-xls");
res.setHeader("Content-disposition", "attachment;filename=" + name+ ".csv");
out.write(0xFEFF);
out.write(sb);
这里有一个概念:Byte Order Mark
BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。
在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。下表列出了不同编码所对应的BOM。
BOM Encoding
EF BB BF UTF-8
FE FF UTF-16 (big-endian)
FF FE UTF-16 (little-endian)
00 00 FE FF UTF-32 (big-endian)
FF FE 00 00 UTF-32 (little-endian)
BOM的来历
为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字符开头。这作为一个“特征符”或“字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序。
Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。
不同的编辑工具对BOM的处理也各不相同。使用Windows自带的记事本将文件保存为UTF-8编码的时候,记事本会自动在文件开头插入BOM(虽然BOM对UTF-8来说并不是必须的),但是editplus就不会这样做。
0 0
- 导出csv文件有乱码
- 导出CSV文件中的乱码
- csv文件导出,excel打开乱码处理
- php导出csv文件无乱码示例
- PHP 导出csv文件乱码解决方案
- Java导出csv文件乱码的解决方法
- PLSQL导出CSV文件中文存在乱码
- 导出csv文件中文乱码问题
- caravel 导出csv文件乱码问题
- Python 导出csv文件时中文乱码
- csv文件导出内容有逗号
- 导出CSV文件,中文乱码,使用“GB2312”格式导出
- bugzilla 导出csv乱码
- workbench 导出csv乱码
- magento -- 在导出CSV时进行转码以保证用excel打开有中文的CSV文件时不会乱码
- java从数据库导出.csv文件及中文乱码问题
- 解决php导出csv文件打开乱码的问题
- java web导出csv文件中文乱码问题解决。
- ffmpeg开发中的问题--too many slices
- C和C++相互调用
- 1
- oralce AWR的使用
- 软件更新源列表
- 导出csv文件有乱码
- C和C++相互调用
- ALTERA USB
- 小松之LINUX驱动开发(基础篇)
- 软件更新源列表
- 软件更新源列表
- JAVA异常
- 行迁移实验
- 软件更新源列表