如何将字符串'1394'
转换为'1394'
?
我尝试更改排序规则但不起作用。
请注意,我在 C# 中从外部设备读取数据。
最佳答案
我在网上搜索后尝试解决问题,我得出的结论是解决这个问题的最好方法是函数
ALTER FUNCTION [dbo].[udf_ReplaceArabicNumbers]
(@str NVARCHAR(1000))
RETURNS NVARCHAR(2000)
AS
BEGIN
DECLARE @i INT = 1
WHILE @i<=LEN(@str)
BEGIN
DECLARE @val NVARCHAR(1)
SET @val = SUBSTRING(@str, @i, 1)
DECLARE @newchar NVARCHAR(1)
SET @newchar = CASE(@val)
WHEN N'۱' THEN 1
WHEN N'۲' THEN 2
WHEN N'۳' THEN 3
WHEN N'۴' THEN 4
WHEN N'۵' THEN 5
WHEN N'۶' THEN 6
WHEN N'۷' THEN 7
WHEN N'۸' THEN 8
WHEN N'۹' THEN 9
WHEN N'۰' THEN 0
END
SET @str = REPLACE(@str, @val, @newchar)
SET @i+=1;
END
RETURN @str
END
并调用这个函数
select [dbo].[udf_ReplaceArabicNumbers] (N'۱۳۹۴')
我推荐这个网站 http://unicode-table.com/en/
在 UNICODE
的帮助下,我们可以获得 HTML-Code
并在我们的程序中使用
select '&#' + cast (UNICODE(N'۱')as nvarchar(10)) + ';',
'&#' + cast (UNICODE(N'۳')as nvarchar(10)) + ';',
'&#' + cast (UNICODE(N'۹')as nvarchar(10)) + ';',
'&#' + cast (UNICODE(N'۴')as nvarchar(10)) + ';'
结果是
关于sql-server - 在 SQL Server 中将包含阿拉伯字符的 Unicode 字符串转换为 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634386/