对不起,我想要返回一个汉字的ANSI编码,使用ASCII()返回的编码与VBS中的ASC()返回的值并不一样。如:SQLSERVER:ASCII('彭') = 197
VBScript:  ASC("彭") = -14867不知这两者有何区别。

解决方案 »

  1.   

    我也不知道,不过
    VB: Ascw("王")=29579
    Sql:Unicode('王')=29579
      

  2.   

    根本不可能,ansi字符集合也就255个
      

  3.   

    这个问题并没弄懂
    不过我并没有把我要实现的功能告诉大家,这是我的错。我是想做一个把汉字词组转换成拼音首字的SQL Function,现在已经解决。脚本如下:create function getpychar(@HZ varchar(50))
    returns varchar(25)
    asbegin Declare @tmp binary(2)
    Declare @Len int
    Declare @PY varchar(25)
    Declare @HZS varchar(2)
    Declare @Index int Set @Index = 1
    Set @Len = Len(@HZ)
    Set @PY = '' While @Index<=@Len
    Begin Set @HZS = Substring(@HZ,@Index,1) Set @tmp = convert(binary(2),@HZS)    
    if (@tmp>=0xB0A1 and @tmp<=0xB0C4)
    Set @PY = @PY + 'A'
    else if (@tmp>=0xB0C5 and @tmp<=0xB2C0)
    Set @PY = @PY + 'B'
    else if (@tmp>=0xB2C1 and @tmp<=0xB4ED)
    Set @PY = @PY + 'C'
    else if (@tmp>=0xB4EE and @tmp<=0xB6E9)
    Set @PY = @PY + 'D'
    else if (@tmp>=0xB6EA and @tmp<=0xB7A1)
    Set @PY = @PY + 'E'
    else if (@tmp>=0xB7A2 and @tmp<=0xB8C0)
    Set @PY = @PY + 'F'
    else if (@tmp>=0xB8C1 and @tmp<=0xB9FD)
    Set @PY = @PY + 'G'
    else if (@tmp>=0xB9FE and @tmp<=0xBBF6)
    Set @PY = @PY + 'H'
    else if (@tmp>=0xBBF7 and @tmp<=0xBFA5)
    Set @PY = @PY + 'J'
    else if (@tmp>=0xBFA6 and @tmp<=0xC0AB)
    Set @PY = @PY + 'K'
    else if (@tmp>=0xC0AC and @tmp<=0xC2E7)
    Set @PY = @PY + 'L'
    else if (@tmp>=0xC2E8 and @tmp<=0xC4C2)
    Set @PY = @PY + 'M'
    else if (@tmp>=0xC4C3 and @tmp<=0xC5B5)
    Set @PY = @PY + 'N'
    else if (@tmp>=0xC5B6 and @tmp<=0xC5BD)
    Set @PY = @PY + 'O'
    else if (@tmp>=0xC5BE and @tmp<=0xC6D9)
    Set @PY = @PY + 'P'
    else if (@tmp>=0xC6DA and @tmp<=0xC8BA)
    Set @PY = @PY + 'Q'
    else if (@tmp>=0xC8BB and @tmp<=0xC8F5)
    Set @PY = @PY + 'R'
    else if (@tmp>=0xC8F6 and @tmp<=0xCBF9)
    Set @PY = @PY + 'S'
    else if (@tmp>=0xCBFA and @tmp<=0xCDD9)
    Set @PY = @PY + 'T'
    else if (@tmp>=0xCDDA and @tmp<=0xCEF3)
    Set @PY = @PY + 'W'
    else if (@tmp>=0xCEF4 and @tmp<=0xD188)
    Set @PY = @PY + 'X'
    else if (@tmp>=0xD1B9 and @tmp<=0xD4D0)
    Set @PY = @PY + 'Y'
    else if (@tmp>=0xD4D1 and @tmp<=0xD7F9)
    Set @PY = @PY + 'Z'
    else
    Set @PY = @PY + UPPER(@HZS) Set @Index = @Index+1 end    /* while循环结束 */ return @PY
    end