Sql 如何使用外部表格正确读取UTF-8字符
我有一个用uft8编码的CSV文件。记录的字段中有文本 文本中的字符由两个字符编码。 e、 g.用Österreich这个词 字符Ö编码为O和¨,而不是Ö 如果我在编辑器中打开文件,我会看到正确的单词Österreich 如果通过选择外部表查看文件,则会看到O¨sterreich 创建外部表时,我已经添加了访问参数CHARACTERSET AL32UTF8Sql 如何使用外部表格正确读取UTF-8字符,sql,oracle,utf-8,character-encoding,external-tables,Sql,Oracle,Utf 8,Character Encoding,External Tables,我有一个用uft8编码的CSV文件。记录的字段中有文本 文本中的字符由两个字符编码。 e、 g.用Österreich这个词 字符Ö编码为O和¨,而不是Ö 如果我在编辑器中打开文件,我会看到正确的单词Österreich 如果通过选择外部表查看文件,则会看到O¨sterreich 创建外部表时,我已经添加了访问参数CHARACTERSET AL32UTF8 是否有可能或参数告诉oracle将输出中的两个字符合并为一个?看起来oracle外部表无法将U+004F U+0308正确转换为单个Ö 如果
是否有可能或参数告诉oracle将输出中的两个字符合并为一个?看起来oracle外部表无法将U+004F U+0308正确转换为单个Ö 如果将数据库从WE8MSWIN1252迁移到AL32UTF8 UTF-8,我假设结果会很好,请参阅 或者修改CSV文件并将字符U+004F U+0308替换为U+00D6,称为
您还可以查看一下根据Unicode标准,您应该始终使用尽可能短的代码点,即ÖU+00D6而不是O–U+004F U+0308。运行SELECT DUMP…,1016 FROM…,会得到什么。。。?确保您有字符U+0308组合分音符,而不是U+00A8分音符。很可能您的客户端应用程序没有正确显示它。许多客户端很难显示组合的Unicode字符。@WernfriedDomscheit,查询结果是Typ=1 Len=11 CharacterSet=WE8MSWIN1252:4f,a8,73,74,65,72,72,65,69,63,68如何确保此U+0308组合分录?我从c应用程序的外部表读取数据并生成pdf。只是试着去做,而文本是在奥斯特雷希之前提到的,而不是奥斯特雷希。因此,这不仅仅是我的客户的一个令人不快的问题。我们从一位客户那里得到了文件。现在这不是什么大问题,客户为我们提供了不同编码的文件。有趣的是,如果可以用外部表格解决这个问题,那么在CSV文件中,你真的有O-,实际上是两个不同的单个字符,而不是Ö。您应该以包含正确内容的方式编辑CSV文件。
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
CHARACTERSET AL32UTF8
STRING SIZES ARE IN BYTES
skip 1
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LDRTRIM
MISSING FIELD VALUES ARE NULL
)