ChatGPT解决这个技术问题 Extra ChatGPT

使用 UTF8 编码的 Excel 到 CSV [关闭]

关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 Stack Overflow 的主题。 2年前关闭。改进这个问题

我有一个 Excel 文件,其中包含一些西班牙字符(波浪号等),我需要将其转换为 CSV 文件以用作导入文件。但是,当我保存为 CSV 时,它会破坏不是 ASCII 字符的“特殊”西班牙字符。左右引号和长破折号似乎也来自在 Mac 中创建 Excel 文件的原始用户。

由于 CSV 只是一个文本文件,我确信它可以处理 UTF8 编码,所以我猜这是 Excel 的限制,但我正在寻找一种从 Excel 到 CSV 并保留非 ASCII 字符的方法完好无损的。

我在发布之前看到了这个问题,但它是关于已经有一个 UTF8 CSV 并在 Excel 中打开它而不是相反。
下面的答案似乎有效,但它们只是解决方法。有谁知道如何让 Excel 做到这一点?
我想放弃我的 2 美分:经过大量试验和错误,尝试使用 VBA 函数等......(我使用 Excel 97 出于各种原因)......简单地保存为“CSV(MSDOS) " 格式为我解决了这个问题。就我而言,Citrix 网络研讨会 (GotoWebinar) CSV 数据以字符结束,以破坏我们端的一些 Apex 代码 - 保存到“CSV (MSDOS)”解决了我(以前)将 CSV 导出加载到 Notepad++ 并将其粘贴到 UTF- 8 空白文件并重新保存。 :-P :-)
这是一个非常烦人的 Excel 限制。我为此提出了用户语音功能请求:excel.uservoice.com/forums/…,请随时投票并实现它
根据 Excel 用户声音,Microsoft 上个月开始为 .csv 开发 UTF-8 excel.uservoice.com/forums/…

n
nevets1219

一个简单的解决方法是使用 Google 电子表格。粘贴(仅当您有复杂的公式时才使用值)或导入工作表,然后下载 CSV。我只是尝试了几个字符,效果很好。

注意:Google 表格在导入时确实有限制。请参阅here

注意:请注意 Google 表格中的敏感数据。

编辑:Another alternative - 基本上他们使用 VB 宏或插件来强制保存为 UTF8。我没有尝试过任何这些解决方案,但它们听起来很合理。


或许 Joel Slotsky(Excel 的前任 PM)可以将他在 The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets 上的 十年前 帖子发送给他们?
使用普通的 Windows 记事本(使用另存为,然后在编码选项中选择 utf-8)对我有用。对我来说,这对我来说是最好的方法,因为这必须由在他们的机器上没有管理员权限的用户完成,因此不需要安装额外的软件。
毫不费力的 OpenOffice JustWorks(tm) - 我认为它应该被包括在内
呃。我只是后背一阵发冷。如果您的 excel 文件有 200,000 行怎么办?或者包含您不想包含在 Excel 电子表格中的敏感数据?如果需要,请使用 Openoffice/Libreoffice。
如果文件很大怎么办?如果我没记错的话,Goolge 表的大小限制约为 75M。我有一个文件是700M
a
aendra

我发现 OpenOffice 的电子表格应用程序 Calc 非常擅长处理 CSV 数据。

在“另存为...”对话框中,单击“格式选项”以获取 CSV 的不同编码。 LibreOffice 的工作方式与 AFAIK 相同。

https://i.stack.imgur.com/Mg7oz.png


我确信这可行,我只是碰巧没有 OpenOffice,所以 Google Docs 在我的情况下更容易。但感谢您的建议
在打开和保存“CSV”文件(字段分隔符、编码等)时,OpenOffice Calc 比 Google Docs 和 Excel 有更多更好的选择。此外,Google Docs 目前每个电子表格的单元格限制为 400,000 个,而 OpenOffice Calc 则没有。
我可以确认 LibreOffice 也可以工作:它提供了 Excel 中遗憾地缺乏的导出字符编码选项。
对于那些处理敏感数据的人来说,这是一个很好的选择。 OpenOffice 套件对于机器锁定的用户来说可以是便携式安装。
F
Flimm

将 Excel 工作表另存为“Unicode 文本 (.txt)”。好消息是所有国际字符都是 UTF16(注意,不是 UTF8)。但是,新的“*.txt”文件是制表符分隔的,而不是逗号分隔的,因此不是真正的 CSV。 (可选)除非您可以使用 TAB 分隔文件进行导入,否则请使用您喜欢的文本编辑器并将 TAB 字符替换为逗号“,”。在目标应用程序中导入您的 *.txt 文件。确保它可以接受 UTF16 格式。

如果 UTF-16 已正确实现并支持非 BMP 代码点,则您可以将 UTF-16 文件转换为 UTF-8 而不会丢失信息。我把它留给你找到你最喜欢的方法。

我使用此过程将数据从 Excel 导入到 Moodle。


终于有东西了!在 Excel 2013 上尝试了上述 Excel 选项但没有成功。当我解析它时,我只是切换到使用 \t 作为分割字符,它工作得很好!
需要将 XLS 导出为 CSV 以导入 MySQL。使用 Excel 2003,我以“Unicode 文本 (.txt)”格式导出,然后使用 Notepad++ 将 TAB 替换为 ;,然后将 txt 文件导入 phpmyadmin,并使用默认的“文件字符集:utf-8”,格式“使用加载数据的 CSV”。所有编码均已正确传输。
谢谢你。这是有道理的。为什么 MS 仍然拒绝使用 UTF 作为标准,这让我印象深刻。
@OskarLimka:当您说“UTF”时,您是指 UTF-8 还是 UTF-16?因为微软确实使用了很多 UTF-16。
“好消息是所有的国际字符都是UTF16(注意,不是UTF8)。”:完全废话。 UTF-8 和 UTF-16 是编码整个 Unicode 代码点集的两种方式。
E
Eric

我知道这是一个老问题,但我碰巧遇到了这个问题,同时也遇到了与 OP 相同的问题。

由于没有发现任何提供的解决方案是可行的选择,我开始探索是否有办法仅使用 Excel 来做到这一点。

幸运的是,我发现丢失字符问题仅在从 xlsx 格式保存为 csv 格式时发生(在我的情况下)。我尝试先将 xlsx 文件保存到 xls,然后再保存到 csv。它确实奏效了。

请试一试,看看它是否适合您。祝你好运。


对我来说,在 Excel for Mac 2011 上,这有效,但前提是我选择 Windows comma separated (CSV)。如果我使用默认或 DOS CSV 选项,它就不起作用——这两个选项都用随机垃圾字符替换重音字符。测试了包括 éèâ 在内的字符...不知道它是否是真正的 UTF8,但字符没有被损坏。
快速确认 - 在(Excel for Mac 2011)上使用此方法生成的文件不会生成 UTF-8 csv,但是,它们会生成至少包含正确字符的 CSV,因此可以在文本编辑器中轻松转换为 UTF8 ,这是从 Excel 默认吐出的可笑的损坏垃圾向前迈出的一大步。
是的,同意,这也适用于我(Excel Mac 2011),它确实值得更多的支持。
这对我来说不太适用(使用 Excel 2007)。我的文件中有 2 个非 ASCII 字符,其中一个以这种方式保存正常,另一个则没有。
请注意,生成的 CSV 文件将采用 UTF-16 格式,而不是所问问题的 UTF-8 格式。
p
pmilewski

您可以在 Unix 下使用 iconv 命令(在 Windows 上也可用作 libiconv)。

在命令行中的 Excel 下保存为 CSV 后:

iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(记得用你的编码替换 cp1250 )。

对于无法导入 GoogleDocs 的大文件(如邮政编码数据库)(400.000 个单元格限制),工作速度很快,效果很好。


如果您的内容包含无法以 1250 编码的字符,那将毫无用处,更好的方法是在 Excel 中导出为“Unicode .txt”并使用 iconv 从 Utf16 转换。也许也可以做一个 sedtr 来将 '\t' 翻译成 ','
Excel 的默认编码在另存为 CSV 或 MS-DOS CSV 时似乎是 CP858,在另存为 Windows CSV 时似乎是 Windows 1252(在 Excel for Mac 2011 上测试过)。
我完全同意这是没有用的,因为当 Excel 以 .csv 格式保存时,它会丢失无法以每个代码点一个字节编码的 Unicode 代码点的信息。
D
Don Cruickshank

您可以在没有第三方软件的现代 Windows 机器上执行此操作。这种方法是可靠的,它将处理包含引号逗号、引号制表符、CJK 字符等的数据。

1. 从 Excel 中保存

在 Excel 中,使用类型 Unicode Text (*.txt) 将数据保存到 file.txt

2. 启动 PowerShell

从“开始”菜单运行 powershell

3. 在 PowerShell 中加载文件

$data = Import-Csv C:\path\to\file.txt -Delimiter "`t" -Encoding BigEndianUnicode

4. 将数据另存为 CSV

$data | Export-Csv file.csv -Encoding UTF8 -NoTypeInformation

这种方法非常适用于包含超过 15,000 条记录的 CSV 文件,其中行数超过了记事本规定的 1024 个字符的限制。只需几秒钟,并且不使用第三方软件。谢谢!
啊,即使我尝试使用 Google 表格,我也遇到了同样的问题。所以也许这个 PowerShell 策略会奏效。这是我的问题。对于某些字符(例如某些表情符号),您需要使用此处所述的 CHARACTER SET utf8mb4stackoverflow.com/a/10959780/470749
@Ryan该问题特定于MySQL。我只是在那个问题中尝试了有问题的字符,它在 Excel 和 PowerShell 中都运行良好。
工作出色!也可以直接将两个命令连接在一起:Import-Csv ... | Export-Csv ... 而不使用中间 $data 变量。
p
phuclv

这样做的唯一“简单方法”如下。首先,要意识到 Excel .csv 文件中显示的内容和隐藏的内容之间存在差异。

打开一个包含信息的 Excel 文件(.xls、.xlsx) 在 Excel 中,选择“CSV(逗号分隔)(*.csv)作为文件类型并保存为该类型。在 NOTEPAD(在“程序”下找到)和然后在开始菜单中的附件),在记事本中打开保存的.csv文件然后选择->另存为...,在“另存为”框的底部,有一个标记为“编码”的选择框。选择UTF- 8(不要使用 ANSI,否则会丢失所有重音符号等)。选择 UTF-8 后,将文件保存为与原始文件名略有不同的文件名。

该文件采用 UTF-8 格式并保留所有字符和重音符号,并且可以导入,例如,导入 MySQL 和其他数据库程序。

此答案取自 this forum


这是不正确的,因为第 2 步保存为 CSV。这样做的问题是 Excel 将 CSV 文件保存在 cp1252 中,这是一种每个代码点一个字节的编码。这会导致无法容纳在一个字节中的字符的信息丢失。
它对我有用,但我不明白为什么。我由 javascript 生成的文件在 excel 中总是被错误地读取(作为不同的编码)。但是当我在记事本中打开并保存为 utf-8 时,它工作正常!所以,看起来有一个带有编码的元数据。这个怎么运作?如果记事本可以保存 UTF-8 CSV 文件并且 Excel 可以读取它们,有可能在我的程序中生成正确的 UTF-8 CSV 文件,Excel 可以读取吗?
为我工作。在从 Access 转换的 XSLX 中。变音符号和 LF-only 和 ISO-date 格式都可以。一种或另一种不适用于更流行的解决方案。
l
leander

我发现另一个有用的:“数字”允许在保存为 CSV 时进行编码设置。


它是 Mac OSX 中的应用程序
还要小心 Numbers,因为它的行数有限制,而且我已经转换了这样的数据,然后才意识到它已经裁剪了一些数据。 Excel/CSV 有更高的限制。
C
Community

使用记事本++

这将修复 Excel 保存的损坏的 CSV 文件,并以正确的编码重新保存它。

从 Excel 导出 CSV

加载到记事本++

修复编码

节省

Excel 保存在 CP-1252 / Windows-1252 中。在 Notepad++ 中打开 CSV 文件。选择

Encoding > Character Sets > Western European > Windows-1252

然后

Encoding > Convert to UTF-8
File > Save

首先告诉 Notepad++ 编码,然后 转换。其中一些其他答案在没有先设置正确编码的情况下进行转换,甚至更多地破坏了文件。他们会将应该是 的内容变成 。如果您的角色不适合 CP-1252,那么它在保存为 CSV 时已经丢失。使用另一个答案。


我可能弄错了,但是您不能在 Notepad++ 中将文件另存为“.csv”,这就是它的意义所在。
是的你可以。您只是保存一个文本文件,而 .csv 是一个文本文件。此答案将打开被 Excel 损坏的 CSV 文件,修复它,然后使用正确的编码重新保存它。
您所传达的内容具有深远的影响。采用这种卓越的方法,我们可以获得更高的数据质量!太棒了! (测验:为什么这条评论如此古怪?)
R
RedYeti

“nevets1219”对于 Google 文档是正确的,但是如果您只是“导入”该文件,它通常不会将其转换为 UTF-8。

但是,如果您将 CSV 导入现有的 Google 电子表格,它确实会转换为 UTF-8。

这是一个食谱:

在主文档(或驱动器)屏幕上单击“创建”按钮并选择“电子表格”

从“文件”菜单中选择“导入”

点击“选择文件”

选择“替换电子表格”

选择您用作分隔符的任何字符

点击“导入”

从“文件”菜单中选择“下载为”-> CSV(当前工作表)

生成的文件将采用 UTF-8


这个答案的问题在于您首先如何生成 CSV 文件。如果您通过在 Excel 中简化另存为 CSV 来做到这一点,则 CSV 文件将采用 cp1252 格式,这是一种每个代码点一个字节的编码。当涉及到一个字节不能容纳的字符时,这将导致信息丢失。
嗯,这是任何这些答案的问题。并且将提供如何转换为 UTF-8 的任何答案,因为无法知道或控制原始编码是什么。
有些答案确实谈到了如何解决这个问题,例如,stackoverflow.com/a/15500052/247696
f
fantabolous

在 Excel 2016 及更高版本(包括 Office 365)下,有一个专用于 UTF-8 格式的 CSV 选项。

在 Office 365 中,执行另存为;以前可能选择了 CSV(逗号分隔),现在您可以保存为 CSV UTF-8(逗号分隔)(*.csv)的文件类型之一


您应该提供一些有关如何使用该选项的说明。
@dexgecko 当然:它被称为“保存”按钮/菜单。现在在 Windows 上的 Excel 2016 中有四种 CSV 导出类型:CSV 保存为“ANSI”(或多或少等同于 Latin1,但对于非西方操作系统安装可能会有所不同,我不确定)、UTF-8 CSV保存为带有 BOM 的 UTF-8,CSV (DOS) 保存为 CP850(同样,可能取决于安装?)和 CSV (Mac) 保存为 MacRoman。
但是,Excel 将只能读取 UTF-8 和 ANSI CSV 文件(Excel 可以使用 BOM 来选择)。要从另一种编码导入,重命名为 .txt,从 Excel 打开(然后有很长的编码列表可供选择),由于它无法正确解释分隔符,请使用“转换”按钮拆分行。当从不同的语言约定导入 CSV 时,您也可以使用此技巧(例如,在法语中,字段分隔符是分号,因为逗号已用作小数分隔符)。
@Jean-ClaudeArbaut Strange,我在 Excel 2016 中没有看到 UTF-8 CSV 选项。
@dexgecko 确实很奇怪。根据 this page(法语,抱歉),该功能是在 2016 年 11 月的版本 1610 中添加的。我目前有 1802 版本。但是,我认为只有 Office 365 有这种演变,我使用的是 Office Pro 2016(不是 365 版本)。也许尝试更新您的办公室。
M
Michael Schau

使用 Powershell 怎么样。

Get-Content 'C:\my.csv' | Out-File 'C:\my_utf8.csv' -Encoding UTF8

非 ascii 西班牙字符的文本将从原始西班牙字符更改为 ANSI 使用的编码字符串。因此,文本将与原始文本不同。
F
Flimm

对于那些寻找完全程序化(或至少是服务器端)解决方案的人,我使用 catdoc 的 xls2csv 工具取得了巨大的成功。

安装catdoc:

apt-get install catdoc

进行转换:

xls2csv -d utf-8 file.xls > file-utf-8.csv 

这速度很快。

请注意,包含 -d utf-8 标志很重要,否则它将以默认的 cp1252 编码对输出进行编码,您将面临丢失信息的风险。

请注意,xls2csv 也仅适用于 .xls 文件,它不适用于 .xlsx 文件。


或者选择不同的输出编码,不能用一个答案解决每个人的问题:-)
我知道这很不幸,但事实是这个答案会给某些用户带来问题。您只使用适合 cp1252 的字符运行此命令这一事实很幸运,您在答案中没有提供有关此风险的警告,您只是说它“工作顺利”。你没有被要求解决每个人的问题,只是 OP,很多人都分享。
你去吧,我在答案帖子中解决了这个问题并删除了反对票。
R
Randomize

最简单的方法:不需要打开办公室和谷歌文档

将文件另存为“Unicode 文本文件”;现在你有一个 unicode 文本文件,用“记事本”打开它,然后选择“utf-8”或其他代码页,将文件扩展名从“txt”重命名为“csv”。这将产生一个制表符分隔的 UTF-8 csv 文件。如果您想要一个逗号分隔的文件,请打开您刚刚重命名的 csv 文件并将所有制表符替换为逗号。要在 Win 10 上的记事本中执行此操作,只需选择一个选项卡字段,然后单击 Ctrl+H。在打开的窗口中,在“替换为”字段中键入逗号,然后单击“全部替换”。保存您的文件。结果将是一个逗号分隔的 UTF-8 csv 文件。

无论如何不要用MS-Office打开它!!!现在您有一个制表符分隔的 CSV 文件。或者,如果您应用了第 5 步,则使用逗号分隔。


对于制表符分隔的文件,最好使用 .txt 扩展名。 csv,即逗号分隔的文件,只是令人困惑。
o
oscaroscar

尽管看起来很有趣,但我发现将 180MB 电子表格保存到 UTF8 CSV 文件的最简单方法是将单元格选择到 Excel 中,复制它们并将剪贴板的内容粘贴到 SublimeText 中。


这是因为 Excel 通过剪贴板提供了选择的 TSV 版本。您同样可以使用记事本代替 SublimeText,但如果您这样做,请记住使用 UTF-8 编码保存!
a
anroy

我无法在 Mac Excel 上找到此问题的 VBA 解决方案。似乎根本没有办法输出 UTF-8 文本。

所以我最终不得不放弃 VBA,硬着头皮学习了 AppleScript。情况并没有我想象的那么糟糕。

此处描述了解决方案:http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html


s
spring_chicken

假设是 Windows 环境,像往常一样在 Excel 中保存和使用该文件,然后在 Gnome Gnumeric(免费)中打开保存的 Excel 文件。将 Gnome Gnumeric 的电子表格另存为 CSV - 无论如何对我来说 - 将其保存为 UTF-8 CSV。


u
user35443

简单的方法:下载 open office (here),加载电子表格并打开 excel 文件(.xls.xlsx)。然后只需将其保存为文本 CSV 文件,就会打开一个窗口,要求保留当前格式或另存为 .ODF 格式。选择“保持当前格式”,然后在新窗口中选择更适合您的选项,具体取决于您的文件所使用的语言。对于西班牙语,请选择西欧 (Windows-1252/ WinLatin 1),该文件可以正常工作。如果您选择 Unicode (UTF-8),它将不适用于西班牙语字符。


UTF-8 没有理由不能与西班牙字符一起使用。
M
Mena

将 xls 文件(Excel 文件)另存为 Unicode 文本=>文件将保存为文本格式 (.txt) 将格式从 .txt 更改为 .csv(将文件从 XYX.txt 重命名为 XYX.csv


这不起作用,因为您的说明不包括在文件数据中将制表符转换为逗号的必要步骤。
Excel 的“Unicode 文本”是 UTF-16,而不是问题中要求的 UTF-8。
B
BSMP

我也遇到了同样的问题,但有一个简单的解决方案。

在 Excel 2016 或更高版本中打开您的 xlsx 文件。在“另存为”中选择此选项:“(CSV UTF-8(逗号分隔)*.csv)”

它运行良好,并生成了一个 csv 文件,可以在任何软件中导入。我在我的 SQLITE 数据库中导入了这个 csv 文件,它可以完美地处理所有 unicode 字符。


此选项在我的 Excel 2016 副本中不可用。您使用的是 Office 365 版本吗?
S
Silent Sojourner

遇到同样的问题并用谷歌搜索了这篇文章。以上都不适合我。最后,我将我的 Unicode .xls 转换为 .xml(选择 Save as ... XML Spreadsheet 2003),它生成了正确的字符。然后我编写代码来解析 xml 并提取内容供我使用。


S
Scarabee

我编写了一个小的 Python 脚本,可以以 UTF-8 格式导出工作表。

您只需提供 Excel 文件作为第一个参数,然后提供要导出的工作表。如果您不提供工作表,脚本将导出 Excel 文件中存在的所有工作表。

#!/usr/bin/env python

# export data sheets from xlsx to csv

from openpyxl import load_workbook
import csv
from os import sys

reload(sys)
sys.setdefaultencoding('utf-8')

def get_all_sheets(excel_file):
    sheets = []
    workbook = load_workbook(excel_file,use_iterators=True,data_only=True)
    all_worksheets = workbook.get_sheet_names()
    for worksheet_name in all_worksheets:
        sheets.append(worksheet_name)
    return sheets

def csv_from_excel(excel_file, sheets):
    workbook = load_workbook(excel_file,use_iterators=True,data_only=True)
    for worksheet_name in sheets:
        print("Export " + worksheet_name + " ...")

        try:
            worksheet = workbook.get_sheet_by_name(worksheet_name)
        except KeyError:
            print("Could not find " + worksheet_name)
            sys.exit(1)

        your_csv_file = open(''.join([worksheet_name,'.csv']), 'wb')
        wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
        for row in worksheet.iter_rows():
            lrow = []
            for cell in row:
                lrow.append(cell.value)
            wr.writerow(lrow)
        print(" ... done")
    your_csv_file.close()

if not 2 <= len(sys.argv) <= 3:
    print("Call with " + sys.argv[0] + " <xlxs file> [comma separated list of sheets to export]")
    sys.exit(1)
else:
    sheets = []
    if len(sys.argv) == 3:
        sheets = list(sys.argv[2].split(','))
    else:
        sheets = get_all_sheets(sys.argv[1])
    assert(sheets != None and len(sheets) > 0)
    csv_from_excel(sys.argv[1], sheets)

我稍微更新了实现并创建了一个要点 gist.github.com/julianthome/2d8546e7bed869079ab0f409ae0faa87
J
Jason Williams

Excel 通常将 csv 文件保存为 ANSI 编码而不是 utf8。

更正文件的一种方法是使用记事本或记事本++:

使用记事本或记事本++ 打开 .csv。将内容复制到您的计算机剪贴板。从文件中删除内容。将文件的编码更改为 utf8。将内容从剪贴板粘贴回来。保存文件。


不确定旧版本的 NP++,但在当前版本中,您只需选择编码 > 转换为 UTF-8。替换步骤 2-5
S
SequenceDigitale.com

“nevets1219”的第二个选项是在 Notepad++ 中打开 CSV 文件并转换为 ANSI。

在顶部菜单中选择:编码 -> 转换为 Ansi


不知道你为什么被否决。记事本++为我做了。无法将我的文件存储在 Google 电子表格中,因为它是机密文件。
这个答案的问题在于您首先如何生成 CSV 文件。如果您只是从 Excel 中另存为 CSV,则编码将是 cp1252,这是一种每个码点一个字节的编码,因此会丢失不适合该字符的字符的信息。此外,最后,如果您想做问题所要求的,您应该转换为 UTF-8,而不是 Ansi。
到目前为止,这是 IMO 更容易的答案。我正在使用 Excel 2016,发现它默认保存为 ANSI 编码,但将其转换为 UTF-8,这正是我想要的。
m
malenkiy_scot

编码 -> 转换为 Ansi 会将其编码为 ANSI/UNICODE。 Utf8 是 Unicode 的一个子集。也许在 ANSI 中会被正确编码,但这里我们谈论的是 UTF8,@SequenceDigitale。

有更快的方法,例如导出为 csv(逗号分隔),然后使用 Notepad++(免费)打开该 csv,然后编码 > 转换为 UTF8。但前提是您必须对每个文件执行一次。如果您需要经常更改和导出,那么最好的是 LibreOffice 或 GDocs 解决方案。


“Utf8 是 Unicode 的一个子集”:这毫无意义。 UTF-8 是 Unicode 的一种编码。
我不确定我能找到这个“编码 -> 转换为 Ansi”选项。
只需在 Notepad++ 中使用 ANSI csv 并将文件的编码更改为 utf8 即可将原始的非 ascii 西班牙字符转换为与原始文本不匹配的编码字符串。
v
vladaman

Microsoft Excel 可以选择使用 Unicode 编码导出电子表格。请参阅以下屏幕截图。

https://i.stack.imgur.com/HDwEK.png


“Unicode 文本”保存在 UTF-16 LE(小端)中,而不是 OP 要求的 UTF-8 中。
是的,但这是在 Excel 中为您的 x 分隔值获得 Unicode 支持的最佳方式。我在尝试让 Excel 使用 UTF-8 玩球时遇到了各种各样的问题! Read More
M
Marius Gri

用记事本++打开.csv。如果你看到你的编码是好的(你看到所有字符都应该是)按 encoding ,然后转换为 ANSI else - 找出你当前的编码是什么


这对我有用..将mysql db导出为csv并将其导入excel时遇到希腊字符问题..
这个问题首先是如何生成 CSV 文件。如果您只是在 Excel 中保存为 CSV 文件,它会将其保存为 cp1252,这是一种每个代码点一个字节的编码,因此会丢失信息。
E
Essam Altantawi

另一种解决方案是通过winword打开文件并将其另存为txt,然后通过excel重新打开它,它将工作ISA


E
Elia Weiss

保存对话框 > 工具按钮 > Web 选项 > 编码选项卡


这对我不起作用。我理解它的方式仅在另存为 Web 格式(HTML 等)时生效,而不是在另存为 CSV 时生效。
为我工作 - 办公室 2007
不能在 Office 2010 上选择任何 CSV 配置文件。
a
academic.user

我遇到了同样的问题,遇到了 this add in ,它在 excel 2013 中工作得非常好,除了提到的 excel 2007 和 2010 之外。