Csv Talend Open Studio中的编码问题

Csv Talend Open Studio中的编码问题,csv,encoding,ascii,talend,utf,Csv,Encoding,Ascii,Talend,Utf,我正在从事一个Talend项目,我们正在将1000个XML文件的数据转换为CSV,我们正在从Talend本身创建一个UTF-8格式的CSV文件编码 但问题是,有些文件创建为UTF-8,有些文件创建为ASCII,我不知道为什么会发生这种情况。文件应始终创建为UTF。您可以转到正在使用的tFileOutputDelimited(或其他类型的tFileOutxxx)的高级选项卡,然后选择UTF-8编码 这是要在其中执行选择的“高级”选项卡的图像 我确信unix文件util是基于文件内容在某个范围内或

我正在从事一个Talend项目,我们正在将1000个XML文件的数据转换为CSV,我们正在从Talend本身创建一个UTF-8格式的CSV文件编码


但问题是,有些文件创建为UTF-8,有些文件创建为ASCII,我不知道为什么会发生这种情况。文件应始终创建为UTF。

您可以转到正在使用的tFileOutputDelimited(或其他类型的tFileOutxxx)的高级选项卡,然后选择UTF-8编码

这是要在其中执行选择的“高级”选项卡的图像


我确信unix文件util是基于文件内容在某个范围内或具有特定的开始(幻数)而做出假设的。在您的例子中,如果生成一个完全有效的UTF-8文件,但只使用ASCII子集,则文件util可能会将其标记为ASCII。在这种情况下,您很好,因为您有一个有效的UTF-8文件。:)

如注释中所述,UTF8是ASCII的超集。这意味着任何ASCII字符的代码点在UTF8中都与ASCII相同

任何识别只包含ASCII字符的文件的程序都会简单地假定它是ASCII编码的。只有在包含ASCII字符集之外的字符时,读取程序使用的任何启发式方法才能识别文件


唯一的例外是专门声明编码的文件类型。这包括(X)HTML和XML之类的东西,它们通常以编码声明开头。

要强制talend按照您的意愿获取文件,您可以在文件中添加一列(例如在tMap中),并在此列中设置UTF-8字符。生成的文件将采用UTF8格式,如其他回复者所述。

告诉您您的文件是ASCII或UTF8的内容我正在Linux系统上使用commad
文件名。
ASCII是UTF8的有效子集。如果您的文件不包含ASCII字符以外的任何内容,那么即使文件以UTF8输出,它也将被视为ASCII。这实际上并不能回答问题。OP的真正问题是,正如评论中提到的,UTF8是ASCII的超集。如果在UTF8编码的文件中没有任何非ASCII字符,它将被视为ASCII(除非文件类型特别允许编码声明)。@ydaetskcoR从OP问题中我了解到,他需要确保他的文件是UTF8编码的。我在Talend解释了他是如何做到的。我认为这解决了他的需要。我还了解到,在某些情况下(UTF8文件仅使用ASCII字符),这两种编码无法与文件内容区分开来,但OP的问题不是如何判断它是否为UTF8;他的问题是确保生成UTF8编码的文件。