C#/微软 SQL Server 2012 : Unicode symbols not displaying correctly (•)

标签 c# html sql sql-server unicode

我的 SQL Server 上有一个产品数据库表。我尝试通过我的 C# 应用程序更改其 HTML 文本。到目前为止一切顺利。

HTML 包含 • - 枚举符号。即使此信息显示在 SQL Server Management Studio 中,它也不会显示在 Web 浏览器中,即使我在应用程序中重新打开该产品也不会显示。

如果我通过在 TableView (非 SQL)中键入 Management Studio 来更新产品,则 • 将在所有应用程序中正确显示。 该表的排序规则为:SQL_Latin1_General_CP850_CI_AS

我像这样更新产品:

UPDATE Products SET ShopText = '• 1<br /> • 2' WHERE ItemCode = '12345'

我做错了什么?

最佳答案

尝试在文字前面放置一个N...

SELECT  '• 1<br /> • 2' COLLATE SQL_Latin1_General_CP850_CI_AS
      ,N'• 1<br /> • 2' COLLATE SQL_Latin1_General_CP850_CI_AS

重要!
确保您的列 Products.ShopText 也是 NVARCHAR(或 NCHAR)列...

SQL Server 知道两种字符串:

  • Unicode UCS-2(2 字节,Unicode UTF-16 的子集),以 N 开头,NCHARNVARCHARNTEXT(已弃用),以及带有 N 的文字,例如 N'SomeText'<
  • 扩展 ASCII(1 字节)。

试试这个,没有 N 也能工作(但是不要在整个数据库中混合排序规则!):

SELECT '• 1<br /> • 2' COLLATE Latin1_General_CI_AS

扩展 Ascii 使用前 0-127 来编码纯拉丁语集。表的上半部分取决于实际的排序规则/代码页。对于 1 字节编码的字符串,您无法确定该字符串是否保持不变:

关于C#/微软 SQL Server 2012 : Unicode symbols not displaying correctly (•),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43974299/

相关文章:

c# - 字典查找与数组查找;数组分配与字典分配

html - 浏览器的图像全宽

php - 如何添加垂直菜单PHP

javascript - 使用 JavaScript 禁用 HTML 所需输入 onchange 单选按钮

c# - 如何使用c# excel应用程序将前导零的数据输入到excel中

c# - WPF ICommand如何用简单的字符串表示以与UI松散耦合?

c# - 'GET OR SET ACCESSOR EXPECTED' 是什么意思?

c# - 如何在 VS08 中使用 ruby​​ 编译器(用于 LESS CSS)?

sql - 我怎样才能提高这个慢查询的性能

sql - 仅打印最后一个值的自定义订单