Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我';我无法将ANSI编码的文件转换为UTF8?_C#_.net_File_Encoding_Utf 8 - Fatal编程技术网

C# 为什么我';我无法将ANSI编码的文件转换为UTF8?

C# 为什么我';我无法将ANSI编码的文件转换为UTF8?,c#,.net,file,encoding,utf-8,C#,.net,File,Encoding,Utf 8,我有一个文本文件,文本如下: 025069;Zoppè di Cadore;BL;VEN;0437;32010;M189;271;http://www.comuni-italiani.it/025/069/ 如果我用Notepad++打开,它会说编码是ANSI。因此,我尝试将其转换并保存在UTF8中: var ABSfilePath = Server.MapPath(UiUtils.GetPath + "/utility/listacomuni.txt"); var myString = Fi

我有一个文本文件,文本如下:

025069;Zoppè di Cadore;BL;VEN;0437;32010;M189;271;http://www.comuni-italiani.it/025/069/
如果我用Notepad++打开,它会说编码是ANSI。因此,我尝试将其转换并保存在UTF8中:

var ABSfilePath = Server.MapPath(UiUtils.GetPath + "/utility/listacomuni.txt");
var myString = File.ReadAllText(ABSfilePath);
byte[] bytes = Encoding.Default.GetBytes(myString);
myString = Encoding.UTF8.GetString(bytes);
File.WriteAllText(Server.MapPath(UiUtils.GetPath + "/utility/listacomuni2.txt"), myString);
但结果是:

025069;Zopp? di Cadore;BL;VEN;0437;32010;M189;271;http://www.comuni-italiani.it/025/069/

Zoppè
现在是
Zopp?
,我丢了一个字符。我哪里错了?

问题似乎在于读取文件时,请尝试以下操作:

var ABSfilePath = Server.MapPath(UiUtils.GetPath + "/utility/listacomuni.txt");
var myBytes = File.ReadAllBytes(ABSfilePath);
var utf8Bytes byte[] = ASCIIEncoding.Convert(ASCIIEncoding.ASCII, UTF8Encoding.UTF8, myBytes);
File.WriteAllBytes(Server.MapPath(UiUtils.GetPath + "/utility/listacomuni2.txt"), utf8Bytes);
当您使用
File.ReadAllBytes
读取字符串时,它将作为
UTF-8
加载该字符串。在将其加载为字节数组时,我们跳过这一部分


您还需要使用
ascienceoding.Convert
转换数据。

您可以在记事本中将其转换为UTF-8,如果这只是一次性的事情,它对您有用吗?我也有同样的问题。我有一个SQL数据库,我想在其中提取UTF-8中的导入/导出文件,但有些字符没有很好地显示,例如“é”变成“,”。我正在使用Notepad+,我想将这些导入/导出文件添加到Prestashop。我试过几种方法,但仍然不起作用。你们能帮帮我吗?也许可以直接在SQL中创建一些东西,但遗憾的是我不是专家~马克森布达乌德