我在做一个数据库导入/导出过程VB.NET版它将MySQL(5.5)数据库中的数据写入纯文本文件。应用程序将数据读取到
DataTable
OutputFile
System.IO.StreamWriter
对象)。此数据库中表的编码为
Latin1
MediumBlob
在尝试验证应用程序的输出时,我使用MySQL工作台直接从数据库中导出数据,然后将其与从应用程序中写入相同数据时得到的结果进行比较。在MySQL工作台的直接导出中,我看到其中一些字节是用反斜杠导出的。但是,当我通过应用程序读取数据时,不会出现此转义字符。通过Notepad++查看,它清楚地显示了两个输出结果之间的一些明显差异(参见屏幕截图)。
很明显,虽然表面上很相似,但两者并不完全相同。我的应用程序不包括转义字符的反斜杠,还有一些字符,如
NULL
OutputFile.Write("'" & System.Text.Encoding.GetEncoding(28591).GetString(CType(COPYRow(ColumnIndex), Byte())) & "'")
GetString
当我开始使用PostgreSQL数据库时,我“假设”这个方法通常也应该工作,但可能使用不同的编码。我试图构建尽可能“通用”的东西,但我必须担心在运行时指定编码,而不是以后硬编码。
编辑
我刚碰到另一个问题,可能会给我指出正确的方向:
Convert a Unicode string to an escaped ASCII string