使用 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不会对变音符号进行编码