【发布时间】:2014-07-05 19:37:34
【问题描述】:
对不起,标题有点含糊,我想不出更好的。一旦想到更好的标题,我会立即对其进行编辑。
问题如下:
-
我的系统在
UTF-8中导出一个CSV文件 -
用户在他的编辑器中打开文件 - 可能是 UTF,也可能是其他字符集 - 例如,
Windows-1250(但实际上可以是任何字符集) -
用户将文件保存在
UTF-8* - 用户将文件导入回系统,现在所有的重音符号和特殊字符都变成了乱码。
编辑:编码问题可能发生也可能不发生!另外,我不知道哪个字符集可能已被“用于”不需要的转换。
而问题是:
有没有办法判断在流程的任何一个步骤中编码是否被错误解释或更改?
我不需要其他任何东西,只是为了警告用户 utd-8 字符集在进程的一个步骤中被误解了,或者文件由于字符集转换而被损坏..
另外,我不需要任何防黑客的解决方案,我只想减轻施加在用户身上的负担,以便在发生潜在的灾难性情况时向他们发出警告。
详情:
我在这里处理的是 CSV,我没有看到任何简单的方法来隐藏控制字符,以便用户不会偶然或故意删除它。
使用的编辑器种类繁多,主要是德语的 MS Excel,但不幸的是,它不仅限于此。可以导出 Unicode (UTF-16 LE) 文本文件,但这并不能解决问题 - 由于(无意的)字符集操作,上传的文件的 Unicode 格式错误。
我想出的解决方案是,我将始终在第一行显示® Company Inc. - Do not remove this line 之类的内容,其中 (R) 符号是控制字符 - 很容易检查它是否是预期的字符或不是。但我相信你会同意,这离一个好的解决方案还差得很远。
【问题讨论】:
标签: csv unicode utf-8 character-encoding