c#不翻译unicode字符串

本文关键字:字符串 unicode 翻译 | 更新日期: 2023-09-27 18:17:08

我有一个字符串,我想插入到一个表中:

 string command = @" insert into " + txnDC.Connection.Database + "..[AZGetPackages] ( [PackageID] , [PackageName] , [VendorID] , [VendorDisplayName] , [IsCustom] , [EPCustomerID] )" +
                    @"values( N'1', N'Package 1', N'11', N'Vendor 1', N'0', N''),
                    ( N'2', N'Package 2', N'12', N'Vendor 2', N'0', N''),
                    ( N'3', N'Package 3', N'13', N'Vendor 3', N'0', N''),
                    ( N'4', N'雑誌コード', N'14', N'税込', N'0', N'')";

当我在那行后面放置一个断点并在调试中查看字符串时,它显示如下:

 txnDC.ExecuteCommand(command, new object[0]); << breakpoint here to view command var

和显示||为中文字符。

管道实际上就是那些小矩形。

当它插入表格时它插入的是矩形字符而不是我设置的字符

有人有什么建议吗?

谢谢!

c#不翻译unicode字符串

我在别人的机器上运行了完全相同的代码,它在那里工作如预期,没有任何更改。这似乎是我的系统上的显示问题。唯一不寻常的事情是我去度假了,把我的机器关掉了10天。我知道这可能无关紧要,但它似乎对我的系统做了一些与字体相关的事情。我不在的时候没有人碰我的电脑,我离开之前也没有做任何与字体相关的事情。

但是有一个转折,记事本不会显示中文字符,也不会VS调试器,而不是SQL SSMS网格结果视图。但是VS . cs文件字符串var defwill和如果我粘贴到SSMS编辑器中,它也会显示它们。

疯狂!

好吧,我不确定你到底在做什么,但是你最好使用参数化查询。所以可能像这样(这是伪代码,需要修改才能编译):

using (SqlConnection c = new SqlConnection("..."))
{
    c.Open();
    using (SqlCommand cmd = new SqlCommand("INSERT INTO table (...) VALUES (@field1, ...)", c);
    {
        cmd.Parameters.AddWithValue("@field1", "税込");
        cmd.Parameters[0].SqlDbType = SqlDbType.NVarChar;
        cmd.ExecuteNonQuery();
    }
}