【问题标题】:detect user's native character encoding to serve correct CSV file检测用户的本机字符编码以提供正确的 CSV 文件
【发布时间】:2022-10-20 00:02:48
【问题描述】:

网站需要将编码为 windows-1252 的 CSV 文件提供给 Windows 工作站上的用户,并将编码为 UTF-8 的文件提供给其他所有人。我可以使用两个 URL 链接来做到这一点,但是用户必须自己弄清楚要单击哪一个。

用户通常不知道也不关心他们的工作站使用的是哪种字符编码。我宁愿使用 JavaScript 来自动确定要请求的 URL。

如何确定用户的本机字符编码?

我宁愿确定编码而不是 Windows,以便在 Windows 切换到 UTF-8 时使应用程序面向未来。

【问题讨论】:

  • Windows 也可以处理 UTF8 csv 文件。他们只需要BOM

标签: javascript csv browser download


【解决方案1】:

谢谢克里斯托弗,BOM 是要走的路。转换为 UTF-8 并包含 BOM 会创建一个通用 CSV 文件,该文件可以在 Windows 和非 Windows 设备中打开。

Classic ASP VBscript 行中的这行代码写入 UTF-8 BOM,它必须是文件的前三个字符。

Response.Write Chr(239) & Chr(187) & Chr(191)

这些 VBscript 行转换文本字符串力量从 windows-1252 到 utf-8。

Str = Str & "" '如果 Str 为空
设置 Stream = Server.CreateObject("ADODB.Stream")
流打开
Stream.Charset = "utf-8"
Stream.WriteText 字符串
Stream.Position = 0
Stream.Type = 2 'adTypeText
Stream.Charset = "windows-1252"
Str = Stream.ReadText(-1) 'adReadAll
流.关闭

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2020-07-25
    • 2011-05-30
    • 2021-03-26
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多