convert(varchar(255), res) 
如果res超過255,而第255,256個字符是中文時就出現"?"了, 有什麼辦法避免問號出現嗎?

解决方案 »

  1.   

    convert(nvarchar(510), res) 
      

  2.   

    convert(nvarchar(255), res) 
    nvarchar表示unicode字符集类型,不管字母或汉字等所有字符一个字符占用(1),而varchar一个汉字要占用(2).
      

  3.   


    这要改table了, 有沒有其它办法
    能不能判断第255字符是中文就舍去?
    听说可以使用ASCII來判断,具体怎么用?
      

  4.   

    在网上找到这样可以,先去试试SELECT SUBSTRING(CONVERT(TEXT,'123456789A123456差額'),1,19)返回结果:123456789A123456差
      

  5.   

    在sql中正常, convert(varchar(255), res) 這個顯示也正常, 放到程序中不行.
    哪位知道如何判断第255个字符是否为中文吗?
      

  6.   

    select case when substring(res,255,1) like '%[吖-做]%' collate chinese_prc_cs_as_ks_ws then '有中文' else '无中文' end from tb
      

  7.   

    declare @sql varchar(8000)
    set @sql='abcdefg中华人民共和国'
    select case when substring(@sql,8,1) like '%[吖-做]%'
         collate chinese_prc_cs_as_ks_ws then '有中文' else '无中文' end --结果  有中文