gpt4 book ai didi

.net - 如何使用 GetBytes(string) 检查是否存在将转换为 "?"的字符

转载 作者:行者123 更新时间:2023-12-02 02:21:44 26 4
gpt4 key购买 nike

我正在为 SSIS 2005 脚本组件编写一段代码以从 informix 数据库(其中数据库字符串存储为 UTF8)读取数据。

此字符串的输出需要加载到文本流 (DT_TEXT),使用代码页 1252 (ANSI - Latin I) 进行编码。

这是我试图完成的一个简单示例(AllColumnsBuffer 是脚本组件输出缓冲区,ColumnText 是我正在加载的 DT_TEXT 字段的名称)。

        Dim s As String = "Testing,1,2,3" & System.Text.RegularExpressions.Regex.Unescape("\u4EB5")
AllColumnsBuffer.AddRow()
AllColumnsBuffer.ColumnText.AddBlobData(encoding.GetEncoding(1252).GetBytes(s))

如果编码发现无法转换为 1252 的字符,我需要抛出一个错误。现在它似乎只是放入一个?如果源中的字符不存在。有什么方法可以验证字符是否存在于目标代码页中?

最佳答案

您可以创建一个新的编码,然后设置 EncoderFallback property - 要么是你自己的后备,要么如果异常对你来说足够好,那么你可以使用 EncoderExceptionFallback .您自己的回退可能(比如说)优雅地失败而无一异常(exception),但设置一个标志以在事后告诉您它失败了。

关于.net - 如何使用 GetBytes(string) 检查是否存在将转换为 "?"的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7827893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com