Tag: utf 8

如何读取像文本一样的excel(.xls)文件?

我需要阅读我收到的一个excel(.xls)文件。 使用像UTF-8,Cp1252,ISO-8859-1,UTF-16LE这样的常规字符集,这些都没有帮助我,字符仍然是畸形的。 所以我search结束了使用juniversalchardet ,它告诉我,字符集是MacCyrillic,使用MacCyrillic来读取文件,但仍然同样奇怪的结果。 当我在excel上打开文件时,一切都很好,所有的字符都很好,因为它的葡萄牙语,它充满了白〜等等。 但是打开惠普记事本或槽java的文件都搞砸了。 但是,如果打开我的Excel文件,然后再保存它像.txt它变得可读 我的方法来find字符集 public static void lerCharset(String fileName) throws IOException { byte[] buf = new byte[50000000]; FileInputStream fis = new FileInputStream(fileName); // (1) UniversalDetector detector = new UniversalDetector(null); // (2) int nread; while ((nread = fis.read(buf)) > 0 && !detector.isDone()) { detector.handleData(buf, 0, nread); } // (3) detector.dataEnd(); // (4) […]

Web API操作会返回FileContentResult,如果保存为.csv,将以乱码打开,而如果为.txt,则为ok。 为什么?

我使用ASP.NET Web API通过http获取响应导出文件。 为此,我返回一个FileContentResult对象,如下所示: return File(Encoding.UTF8.GetBytes(fileContents.ToString()), "text/plain; charset=UTF-8"); 经过几分钟的编码问题后,我使用谷歌的高级REST客户端来执行获取到网页API控制器的行动,该文件正在下载就好了。 那么,不完全是。 我最初希望它被发送/下载为.csv文件。 如果我将http请求内容types设置为“ text / csv ”而File()调用也将响应的内容types设置为“text / csv”,Advanced REST Client将正确显示内容,但是Excel会打开它作为乱码数据。 如果我只是简单地将内容types改为“ text / plain ”,把它保存为一个.txt文件(保存后必须重命名,不知道为什么要保存为_.text-plain,而作为csv它以.csv扩展名保存),最后在Excel中执行导入,如此处所述的Excel导入文本向导,然后Excel将正确打开文件。 为什么.csv被打开为乱码,而.txt不是? 对于打开.csv,没有像.txt文件一样的导入向导(不是我所知道的)。 在下面提供一些源代码: StringBuilder fileContents = new StringBuilder(); //csv header fileContents.AppendLine(String.Join(CultureInfo.CurrentCulture.TextInfo.ListSeparator, fileData.Select(fileRecord => fileRecord.Name))); //csv records foreach (ExportFileField fileField in fileData) fileContents.AppendLine(fileField.Value); return File(Encoding.UTF8.GetBytes(fileContents.ToString()), "text/plain; charset=UTF-8"); 根据要求,这两个文件的二进制内容。 文本纯文本(.txt)版本(将在Excel中打开,使用导入): 和.csv之一(excel将用垃圾数据打开的那个): (文件是一样的,截屏的裁剪是不一样的…)

用Excel打开包含HTML的UTF-8 CSV

我有一个多语言的网站,我需要在Excel中打开一个csv翻译公司的翻译从英文到普通话的内容。 该文件是UTF-8,当我通过双击打开它,Excel不关心它是什么字符集和一些字符混乱。 当我通过数据 – >导入文本,selectUTF-8,并select我的分号分隔符,这样,字符是好的,但Excel生成新的行,如果它通过一个HTML结束标记 任何帮助? 我很乐意上传CSV的地方,所以你可以自己尝试。

格式:UTF-8编码时错误的string宽度

当我有“ä”,“ü”,“ö”等字符的时候,我得到了一个错误的格式输出。我从excel-sheet-column中读取名字,有时候是Unicodestring,我编码为UTF-8。 我的简化代码: import xlrd name1 = (xl_sheet.cell_value(row,5)).encode('utf8') # use this because this cell can have strings with chars like "ö" name2 = (xl_sheet.cell_value(row,7)).encode('utf8') print('{:<15} {:<15}'.format(name1,name2)), 当我不使用.encode,我得到这个错误: 'ascii' codec can't encode character u'\xf6' in position 1: ordinal not in range(128) 我发现了一个类似的post: Pythonstring格式的宽度在string中像é或ö这样的字符错误 ,但是我不知道如何实现,在我的情况下! 我的输出表是这样的: oabcd oabcd öabcd oabcd oabcd oabcd 当variables中出现焦炭时,输出不正确。 Excel文件具有CP-1252“Windows Unicode”编码。 xlrd.open_workbook(文件名).encoding的输出是:utf_16_le。

带UTF-8字节顺序标记的Excel文件导致错误

我只是想知道是否有任何可能的方法来解决这个问题。 我在工作时收到包含光纤接头拼接信息的Excel文件,当我尝试导入时,出现一个输出错误,提示第一个表与预期看到的不匹配。 当我打开它的时候,我可以看到UTF-8的BOM作为Joint Name 之前的单词。 显然这是隐藏在原始文件中的,并且导致一些手动工作必须从每个Excel文件中删除每个符号。 目前我收到的文件是.csv格式,错误文件以.csv的forms显示。 有什么办法可以预先保存这些去掉BOM或者是什么东西来避免这种情况下的手工工作? 理想情况下,我想删除隐藏的物料清单,以便导入只是第一次没有返工。

将包含元音变音的数据导出到Excel可读的.csv文件中

我在Mac OS X 10.8.2上使用Python 2.7.2 。 我需要编写一个.csv文件,其中经常包含几个“变音符号”,如ä,ö和ü。 当我编写.csv文件时,Numbers和Open Office都能够正确读取csv,并且显示Umlauts没有任何问题。 但是,如果我用Microsoft Excel 2004读取它,则显示如下: TuÃàrlersee 我知道,Excel有处理UTF-8的问题。 我读过2007年以下的Excel版本,即使已经设置了UTF-8 BOM(字节顺序标记),也无法正确读取UTF-8文件。 我正在用以下行设置UTF-8 BOM: e.write(codecs.BOM_UTF8) 所以我下一步尝试的是将其导出为UTF-8文件,而不是将字符编码设置为mac-roman。 用下面这行代码解码utf-8的值并用mac-roman重新编码。 projectName = projectDict['ProjectName'].decode('utf-8').encode('mac-roman') 但是,然后我收到以下错误: UnicodeEncodeError: 'charmap' codec can't encode character u'\u0308' in position 6: character maps to <undefined> 如何将这些数据导出到.csv文件中,Excel能够正确读取Umlauts? Python内部处理UTF-8中的所有内容。 或者,也许我没有正确理解解码/编码。 在Python 3.0中,他们已经调整了整个编码/解码模型,但是我需要继续使用2.7.2版本。 我正在使用DictWriter: w = csv.DictWriter(e, fieldnames=fieldnames, extrasaction='ignore', delimiter=';', quotechar='\"', quoting=csv.QUOTE_NONNUMERIC) w.writeheader()

将文件保存为CSV UTF8会给出错误1004

我想保存在许多单元格中有中文字符的工作表的内容。 我使用录制的macros获得了下面的代码。 ActiveWorkbook.Sheets("input").SaveAs fileName:="D:\File1.csv", FileFormat:=xlCSVUTF8 但是当我运行它我得到运行时错误1004: 对象_workbook的方法另存为失败 。 如果我将FileFormat:=xlCSVUTF8更改为FileFormat:=xlCSV ,那么它会正常工作,但由于缺lessUTF-8,中文字符会以CSV文件的forms保存为问号。 如何在VBA中保存CSV文件并保留UTF-8编码?

大pandas:ascii编解码器不能编码字符序号不在范围内 – 哪个单元格?

我对Pandas和Excel有很大的问题。 我在Excel文档中读入一个数据框,这很好。 我做了计算,一切都很好。 然后,我尝试保存数据框以检查计算结果,pandas吹起了这个错误信息: UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 4: ordinal not in range(128) 这通常表示数据框中的某些单元格中存在一些非ASCII字符。 我通常的做法是放弃该列,因为我只是想分析数字,而不是string。 但是,我应该放弃哪一列? 我没有任何线索。 理想情况下,我想pandas告诉我哪些单元格有问题,哪些列是有问题的。 到目前为止,pandas不告诉我什么,所以我需要手动检查每个细胞find罪魁祸首。 我所做的是打印出不好的字符,然后手动检查每个单元格是否包含该字符。 这是不可行的。 所以我删除所有不可行的string列。 如何解决这个问题呢? 我怎样才能find细胞或列,这给我的坏字符问题? 我试图把所有的东西都转换成UTF-8,夹心等等,但是我无法得到它的工作。 所以我需要一种方法来find有问题的单元格,以便我可以手动删除string。 编辑:解决! 正如bdiamante所build议的,他的链接显示了解决这个问题的方法。 为了将来的参考,这工作: df.to_csv('file.csv',encoding='utf-8-sig')

如何在Excel 2010中用VBA查询UTF-8编码的CSV文件?

我想用以下数据库连接在Excel 2010中使用VBA查询UTF-8编码的CSV文件: provider=Microsoft.Jet.OLEDB.4.0;;data source='xyz';Extended Properties="text;HDR=Yes;FMT=Delimited(,);CharacterSet=65001" 所有的CSV文件都以BOM \ xEF \ xBB \ xBF和标题行开头。 不知怎的,BOM不能被正确识别,第一列标题被读作“?header_name”,也就是说问号被前置了。 我已经尝试了不同的CharacterSets,我也尝试使用Microsoft.ACE.OLEDB.12.0,但一切都没有成功。 这是一个已知的错误,或者有什么办法来获得正确的第一列标题名称,而不改变源文件的编码?

将电子表格/ excel文件分割为多个采用UTF-8编码的csv文件

下面的代码成功地将大的Excel文件转换为具有指定行数的csv文件。 我怎么想输出文件是UTF-8编码的CSV文件。 如何将UTF-8代码添加到下面,我想将下面的拆分文件代码与UTF-8转换代码结合起来 Sub test() Dim wb As Workbook Dim ThisSheet As Worksheet Dim NumOfColumns As Integer Dim RangeToCopy As Range Dim RangeOfHeader As Range 'data (range) of header row Dim WorkbookCounter As Integer Dim RowsInFile 'how many rows (incl. header) in new files? Application.ScreenUpdating = False 'Initialize data Set ThisSheet = ThisWorkbook.ActiveSheet NumOfColumns = […]