操作系统对非unicode用中文解释?

解决方案 »

  1.   

    应该是unicode字符的问题,原来字段是char的显示是乱码,改成nchar可以正确显示了,不过有没有不修改字段属性而爷正确显示的方法。
      

  2.   

    unicode字符要用nchar,nvarchar,ntext储存
      

  3.   

    1 依据SQL英文版安装默认排序规则 中文仍以ASCII解析存入 从而导致乱码 如果要正确存入 需要N'...'
    2 依据SQL中文版安装默认排序规则 中文会按照Unicode解析 每个汉字占用连个字节 char(10)可以存5个汉字 也可以存10个字母;如果指定Nchar(5) 可以存5个汉字 或者5个字母内部的存储是一个方面 显示是另一个方面
      

  4.   

    1   依据SQL英文版安装默认排序规则   中文仍以ASCII解析存入   从而导致乱码   如果要正确存入   需要N'...' 
    2   依据SQL中文版安装默认排序规则   中文会按照Unicode解析   每个汉字占用连个字节   char(10)可以存5个汉字   也可以存10个字母;如果指定Nchar(5)   可以存5个汉字   或者5个字母 内部的存储是一个方面   显示是另一个方面
    ————————————————————————————————————
    能不能修改默认排序规则呢,先unicode解析
      

  5.   

    create table ttt(
    id int not null,
    notes nchar(5)
    )
    goset nocount on
    insert into ttt values (1,'abcde') --ok
    insert into ttt values (2,'abcdef') --error
    insert into ttt values (3,'上海多美n') --ok
    insert into ttt values (4,'上海多美好') --ok
    insert into ttt values (5,'上海多美好d') --errorselect * from ttt1/*
    id          notes 
    ----------- ----- 
    1           abcde
    3           ????n
    4           ?????
    */create table ttt2(
    id int not null,
    notes char(10)
    )
    goinsert into ttt2 values (1,'abcde') --ok
    insert into ttt2 values (2,'abcdeabcde') --ok
    insert into ttt2 values (2,'abcdeabcdea') --error
    insert into ttt2 values (3,N'上海多美好') --ok
    insert into ttt2 values (3,N'上海多美好d') --ok
    insert into ttt2 values (4,N'上海多美好上海多美好') --ok
    insert into ttt2 values (4,N'上海多美好上海多美好d') --errorselect * from ttt2/*
    id          notes      
    ----------- ---------- 
    1           abcde     
    2           abcdeabcde
    2           ?????     
    3           ?????     
    3           ?????d    
    4           ??????????
    */
      

  6.   

    create table ttt2(
    id int not null,
    notes char(10)
    )
    goinsert into ttt2 values (1,'abcde') --ok
    insert into ttt2 values (2,'abcdeabcde') --ok
    insert into ttt2 values (2,'abcdeabcdea') --error
    insert into ttt2 values (3,N'上海多美好') --ok
    insert into ttt2 values (3,N'上海多美好d') --ok
    insert into ttt2 values (4,N'上海多美好上海多美好') --ok
    insert into ttt2 values (4,N'上海多美好上海多美好d') --error————————————————————————————————————————————————————————————————————
    这样输入的通过企业管理器打开还是??,和用access链接表输入的情况一样,
      

  7.   

    数据的存入过程是这样1 操作系统译码 不能译码的不能正常显示
    2 译码跟数据库的code page做对应处理 不能对应的将以?结果显示
    3 能正确译码的再根据unicode或非unicode进行存入
      

  8.   

    可以参考下我刚写的文章 http://blog.csdn.net/rouqu/archive/2007/12/25/1967155.aspx
      

  9.   

    数据库建好后collation   name可以改吗,我原来建好的这一项是空的
      

  10.   

    用alter database 库名 collate Chinese_PRC_BIN  提示:
    Server: Msg 5030, Level 16, State 2, Line 1
    The database could not be exclusively locked to perform the operation.
    Server: Msg 5072, Level 16, State 1, Line 1
    ALTER DATABASE failed. The default collation of database 'gydata' cannot be set to Chinese_PRC_BIN.