代码之家  ›  专栏  ›  技术社区  ›  dragonfly

SQL Server和ASP.NET编码问题

  •  0
  • dragonfly  · 技术社区  · 14 年前

    我的页面添加了utf-8元元素+sqlserver编码也是utf。但是,当我创建记录并尝试使用包含像“”这样的波兰语字符的条件发出SELECT语句时,没有看到任何结果。你知道我遗漏了什么吗?

    此外,Sql管理工作室显示结果与波兰字符,但我不相信它。。。。我想把记录放进数据库有点不对劲。。。

    或者我如何排除故障?

    3 回复  |  直到 14 年前
        1
  •  3
  •   KyleMit Steven Vachon    6 年前

    我也有同样的问题,我通过在 WHERE

    SELECT * FROM Person WHERE FamilyName='Krzemiński
    SELECT * FROM Person WHERE FamilyName LIKE 'Krzemiń%'
    

    …但这些语句都返回了正确的记录:

    SELECT * FROM Person WHERE FamilyName LIKE 'Krzemi%'<br>
    SELECT * FROM Person WHERE FamilyName LIKE 'Krzemi%ski'
    

    当我执行以下语句时:

    SELECT * FROM Person WHERE FamilyName LIKE '%ń%'
    

    获取包含“”字符的记录。我用所有波兰语字符()尝试了最后一个查询,除“”之外的所有字符都表现出相同的行为(即,返回具有较低ASCII等效字符的所有记录)。奇怪的是,“”按它应该的方式工作,只返回那些在FamilyName字段中带有“”的记录。

    因此,以下陈述:

    SELECT * FROM Person WHERE FamilyName LIKE N'%ń%'
    SELECT * FROM Person WHERE FamilyName=N'Krzemiński'
    

    我感到困惑的原因是,我有许多带有奇怪音调符号的记录,它们都返回正确的记录,即使没有“N”前缀。到目前为止,我发现唯一需要显式“N”前缀的字符是波兰语字符。

        3
  •  0
  •   HotTester    14 年前

    只需使用nvarchar而不是varchar作为保存记录的列的数据类型。