gpt4 book ai didi

asp.net - 我需要什么字符集才能在 CSV 中正确编码日语以在 Excel 中打开?

转载 作者:行者123 更新时间:2023-12-02 12:16:49 28 4
gpt4 key购买 nike

我的 asp.net 应用程序应该将数据集导出为 CSV 文件以在 Excel 中打开。除了英文字符外,该数据集还包含日文双角汉字字符。

我尝试了多种不同的标题、字符集和内容编码组合,但未能找到允许 Excel 打开文件并正确显示日语字符的正确组合。

但是,如果我在记事本中打开该文件,然后使用 UTF-8 编码保存它,则可以在 Excel 中打开该文件并按预期查看日语字符。因此它一定是可能的,但我无法找到正确的 header 组合来使其工作而无需在记事本中打开并保存导出的文件。

Private Sub TestCSV()

Dim context As HttpContext = HttpContext.Current

context.Response.Clear()
context.Response.ClearHeaders()
context.Response.ClearContent()
context.Response.Cache.SetCacheability(HttpCacheability.NoCache)
context.Response.AddHeader("Content-Disposition", "attachment; filename=test.csv")
context.Response.ContentType = "text/csv"
context.Response.Charset = Encoding.UTF8.WebName

context.Response.Write("English,Japanese")
context.Response.Write(Environment.NewLine)
context.Response.Write("Test,日本語")

context.Response.End()

End Sub

任何帮助使此代码正常工作将不胜感激。

我还尝试以各种组合和顺序使用以下代码行,但没有任何效果。

    context.Response.BinaryWrite(Encoding.UTF8.GetPreamble())
context.Response.BinaryWrite(Encoding.GetEncoding("utf-16le").GetPreamble())
context.Response.Charset = Encoding.GetEncoding("utf-16le").WebName
context.Response.AddHeader("Content-Type", "text/csv; charset=utf-16")
context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250")

谢谢!

最佳答案

明白了!我添加了一些其他语言和符号只是为了双重确定。

关键是将 header 中的字符集、内容编码和前导码全部设置为 UTF-8。

Private Sub TestCSV()

Dim context As HttpContext = HttpContext.Current

context.Response.Clear()
context.Response.ClearHeaders()
context.Response.ClearContent()
context.Response.Cache.SetCacheability(HttpCacheability.NoCache)
context.Response.ContentType = "text/csv"
context.Response.AddHeader("Content-Disposition", "attachment; filename=test.csv")
context.Response.Charset = Encoding.UTF8.WebName
context.Response.ContentEncoding = Encoding.UTF8
context.Response.BinaryWrite(Encoding.UTF8.GetPreamble)

context.Response.Write("Language,Sample")
context.Response.Write(Environment.NewLine)
context.Response.Write("Symbol,™£©€®")
context.Response.Write(Environment.NewLine)
context.Response.Write("Japanese,日本語")
context.Response.Write(Environment.NewLine)
context.Response.Write("Chinese Simplified,中文(简体)")
context.Response.Write(Environment.NewLine)
context.Response.Write("Spanish,Español")
context.Response.Write(Environment.NewLine)
context.Response.Write("Chinese Traditional,中文(繁體)")
context.Response.Write(Environment.NewLine)
context.Response.Write("Korean,한국어")

context.Response.End()

End Sub

谢谢!

关于asp.net - 我需要什么字符集才能在 CSV 中正确编码日语以在 Excel 中打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8116913/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com