早已分不清真相 2014-12-04 07:55 采纳率: 0%
浏览 866

SQL 2008 全角转半角遇到特殊字符

函数是这样的
这个方法全角转半角有个BUG 就是遇到 特殊字符 这样一个特殊字符,这个字符我应该是全角的,我把这个字符从数据库种复制出来就能转换,但是直接查询转换的时候,没办法转! 研究了好多天,都没有办法,有没有人知道的? 交流一下?
[dbo].f_Convert, --要转换的字符串

@flag bit --转换标志,0转换成半角,1转换成全角

)RETURNS nvarchar(4000)

AS

BEGIN

DECLARE @pat nvarchar(8),@step int,@i int,@spc int

IF @flag=0

SELECT @pat=N'%[!-~]%',@step=-65248,

@str=REPLACE(@str,N' ',N' ')

ELSE

SELECT @pat=N'%[!-~]%',@step=65248,

@str=REPLACE(@str,N' ',N' ')

SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)

WHILE @i>0

SELECT @str=REPLACE(@str,

SUBSTRING(@str,@i,1),

NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))

,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)

RETURN(@str)

END

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算