本文介紹了在 SQL Server 中將 unicode 字符串轉換為 ascii的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
如何將字符串'????'
轉換為'1394'
?
我嘗試更改排序規則但不起作用.
請注意,我在 C# 中從外部設備讀取數據.
解決方案
我在網上搜索后嘗試解決這個問題我得出的結論是解決這個問題的最好方法是函數
ALTER FUNCTION [dbo].[udf_ReplaceArabicNumbers](@str NVARCHAR(1000))回報 NVARCHAR(2000)作為開始聲明@i INT = 1而@i<=LEN(@str)開始聲明@val NVARCHAR(1)SET @val = SUBSTRING(@str, @i, 1)聲明@newchar NVARCHAR(1)SET @newchar = CASE(@val)WHEN N'?' THEN 1WHEN N'?' THEN 2WHEN'?' THEN 3WHEN'?' THEN 4WHEN'?' THEN 5WHEN'?' THEN 6WHEN N'?' THEN 7WHEN'?' THEN 8WHEN'?' THEN 9WHEN N'?' THEN 0結尾SET @str = REPLACE(@str, @val, @newchar)設置@i+=1;結尾返回@str結尾
并調用這個函數
選擇 [dbo].[udf_ReplaceArabicNumbers] (N'????')
我參考這個網站
How to convert string '????'
to '1394'
?
I try change collation but does not work.
Please note that I read data from external device in C# .
解決方案
i have tried to solve problem after search on internet i came to the conclusion the best way to solve this problem is function
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
and call to this function
select [dbo].[udf_ReplaceArabicNumbers] (N'????')
i refer this site http://unicode-table.com/en/
with the help of UNICODE
we can get HTML-Code
and use in our Program
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)) + ';'
and result would be
這篇關于在 SQL Server 中將 unicode 字符串轉換為 ascii的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!