C# 中西班牙语文件的编码问题
Encoding issue with spanish file in C#
我在 azure blob 存储中有一个西班牙语在线文件存储。有些词有特殊的特征(例如:Almacén)
当我用notepad++打开文件时,编码是ANSI。
所以现在我尝试用代码读取文件:
using StreamReader reader = new StreamReader(Stream, Encoding.UTF8);
blobStream.Seek(0, SeekOrigin.Begin);
var allLines = await reader.ReadToEndAsync();
问题是“allLines”编码不正确,我有一些问题,例如:Almac�n
我尝试过这样的解决方案:
C# Convert string from UTF-8 to ISO-8859-1 (Latin1) H
但还是不行
(最终目标是“合并”两个 csv,所以我读取了两者的流,删除 header 并连接字符串以再次推送它。如果有更好的解决方案来合并 csv可以跳过此编码问题的 c# 我也对此持开放态度)
您正在尝试读取一个非 UTF8 编码的文件,就像它是 UTF8 编码的一样。我可以用
复制这个问题
var s = "Almacén";
using var memStream = new MemoryStream(Encoding.GetEncoding(28591).GetBytes(s));
using var reader = new StreamReader(memStream, Encoding.UTF8);
var allLines = await reader.ReadToEndAsync();
Console.WriteLine(allLines); // writes "Almac�n" to console
您应该尝试读取编码为 iso-8859-1“西欧 (ISO)”的文件,代码页为 28591。
using var reader = new StreamReader(Stream, Encoding.GetEncoding(28591));
var allLines = await reader.ReadToEndAsync();
我在 azure blob 存储中有一个西班牙语在线文件存储。有些词有特殊的特征(例如:Almacén) 当我用notepad++打开文件时,编码是ANSI。
所以现在我尝试用代码读取文件:
using StreamReader reader = new StreamReader(Stream, Encoding.UTF8);
blobStream.Seek(0, SeekOrigin.Begin);
var allLines = await reader.ReadToEndAsync();
问题是“allLines”编码不正确,我有一些问题,例如:Almac�n
我尝试过这样的解决方案: C# Convert string from UTF-8 to ISO-8859-1 (Latin1) H
但还是不行
(最终目标是“合并”两个 csv,所以我读取了两者的流,删除 header 并连接字符串以再次推送它。如果有更好的解决方案来合并 csv可以跳过此编码问题的 c# 我也对此持开放态度)
您正在尝试读取一个非 UTF8 编码的文件,就像它是 UTF8 编码的一样。我可以用
复制这个问题var s = "Almacén";
using var memStream = new MemoryStream(Encoding.GetEncoding(28591).GetBytes(s));
using var reader = new StreamReader(memStream, Encoding.UTF8);
var allLines = await reader.ReadToEndAsync();
Console.WriteLine(allLines); // writes "Almac�n" to console
您应该尝试读取编码为 iso-8859-1“西欧 (ISO)”的文件,代码页为 28591。
using var reader = new StreamReader(Stream, Encoding.GetEncoding(28591));
var allLines = await reader.ReadToEndAsync();