使用 BIML 导入 CSV 后变音符号丢失

Posted

技术标签:

【中文标题】使用 BIML 导入 CSV 后变音符号丢失【英文标题】:diacritics missing after importing CSV using BIML 【发布时间】:2021-08-02 18:09:50 【问题描述】:

我正在使用 BIML 导入 CSV 文件。这就像一个魅力。但是:有一个警告。 在导入的数据中,变音符号被替换(例如:Coupé 被导入为Coup+®

这些 CSV 似乎是标准的 CSV 文件。它们存储在 Windows 共享中。 它们被导入到带有排序规则SQL_Latin1_General_CP1_CI_AS 的数据库中。 BIML 文件的dataflow 部分如下所示:

                <Dataflow Name="Transport CSV_2_<#=imp_schema#>_<#=fileName#>">
                    <Transformations>
                        <FlatFileSource Name="SRC_FF-<#=fileName#> " ConnectionName="FF_CSV-<#=fileName#>"></FlatFileSource>
                            
                        <OleDbDestination ConnectionName="<#=application#>_<#=imp_schema#>" Name="OLE_DST-<#=fileName#>" >
                        <ExternalTableOutput Table="<#=imp_schema#>.<#=fileName#>"/>
                        </OleDbDestination>
                    </Transformations>
                </Dataflow>

如何确保导入变音符号的方式与文件中存在的方式相同?

【问题讨论】:

发布平面文件的定义。我的猜测是您要么需要使用 dt_wstr 类型或非 unicode 指定 unicode,但提供与 1252 不同的代码页以保留 dt_str 我会的。看起来问题实际上取决于用户/机器。一旦我知道更多,就会报告。 @billinkc 你应该得到你的回答的学分! 很高兴听到它,但请继续并标记它已解决 - 您需要积分 ;) 这不是重点,我真的很感谢您的意见。也许您会接受衷心的“感谢您”的所有贡献。 【参考方案1】:

通过在平面文件的定义中添加 CodePage = "65001" 解决了这个问题

【讨论】:

以上是关于使用 BIML 导入 CSV 后变音符号丢失的主要内容,如果未能解决你的问题,请参考以下文章

使用League / CSV导出CSV不会对变音符号进行编码

Microsoft Excel 破坏 .csv 文件中的变音符号?

SQL 插入多语言数据 - 丢失变音符号等

MongoDB 匹配部分文本忽略重音符号(变音符号)

美国布局的变音符号和其他符号的替代键盘映射

用英语等价物替换德语字符(变音符号、重音符号)