SQL 將URL編碼轉漢字!
-- =============================================
-- 作 者: ruijc
-- 描 述: 將Url編碼轉明文字串
-- =============================================
CREATE FUNCTION FN_URLDecode
(
@Str VARCHAR(8000)--已經編碼的字串
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @Position INT; --'%'字元所在位置
DECLARE @Chr CHAR(16); --字元常量
DECLARE @Pattern CHAR(21);
DECLARE @ParseStr VARCHAR(8000);--解碼後的字串
DECLARE @Hex UNIQUEIDENTIFIER;--定義16進位制模板,因為GUID方便轉為BYTE
DECLARE @CurrWord INT ;--當前字
DECLARE @BitsCount INT ;--當前解碼位數
DECLARE @HightByte TINYINT;--高位位元組
DECLARE @LowByte TINYINT;--低位位元組
/****************變數初始化***********************/
SET @Chr = '0123456789abcdef';
SET @Pattern = '%[%][a-f0-9][a-f0-9]%';
SET @ [email protected];
SET @Hex= '00000000-0000-0000-0000-000000000000';
SET @CurrWord=0;
SET @BitsCount=0;
SET @HightByte=0;
SET @LowByte=0;
IF (@Str IS NOT NULL OR @Str<>'')
BEGIN
SET @Position = PATINDEX(@Pattern, @ParseStr);--取得第一個'%'所在的位置
WHILE @Position>0
BEGIN
SET @Hex=STUFF(@Hex,7,2,LEFT(RIGHT(@ParseStr,len(@ParseStr) - @Position),2));
SET @HightByte=CAST(CAST(@Hex AS BINARY(1)) AS INT);
IF (@HightByte & [email protected])
BEGIN--ASCII碼直接轉為UTF-8或UTF-16
SET @[email protected];
SET @BitsCount=1;
END
IF (@HightByte & 192=192)
BEGIN--Unicode編碼
SET @[email protected] & 31 ;
SET @BitsCount=2;
END
IF (@HightByte & 224=224)
BEGIN--UTF-8編碼
SET @CurrWord = @HightByte & 15
SET @BitsCount = 3
END
IF (@HightByte & 240=240)
BEGIN--UTF-16編碼
SET @CurrWord = @HightByte & 7
SET @BitsCount = 4
END
DECLARE @Index INT;
DECLARE @NEWCHAR NVARCHAR(2);
SET @Index=1;
SET @NEWCHAR='';
WHILE @Index<@BitsCount
BEGIN
IF (LEN(@ParseStr) [email protected]*@Index)<0
BEGIN
SET @[email protected] ;
SET @Position=0;
BREAK;
END
SET @NEWCHAR = LEFT(RIGHT(@ParseStr,LEN(@ParseStr) - @Position - 3* @Index),2);
--如果沒有16進位制編碼則中斷外層WHILE
IF @NEWCHAR NOT LIKE '[a-f0-9][a-f0-9]'
BEGIN
SET @ParseStr = @Str
SET @Position=0;--中斷外層WHILE
BREAK;
END
SET @Hex = STUFF(@Hex, 7, 2, @NEWCHAR)
SET @LowByte = CAST(CAST(@Hex AS BINARY(1)) AS INT);
IF @LowByte&192=192
BEGIN
SET @ParseStr = @Str
SET @Position=0;--中斷外層WHILE
BREAK;
END
SET @CurrWord = (@CurrWord * 64) | (@LowByte & 63)
SET @Index [email protected]+ 1
END
IF @BitsCount > 1
SET @ParseStr = STUFF(@ParseStr, @Position, 3*(@BitsCount), NCHAR(@CurrWord))
ELSE
BEGIN
set @ParseStr = STUFF(@ParseStr, @Position, 2, NCHAR(@CurrWord))
set @ParseStr = STUFF(@ParseStr, @Position+1, 1, N'')
END
----取得下一個'%'所在的位置
SET @Position = PATINDEX(@Pattern, @ParseStr);
END
END
RETURN @ParseStr;
END
GO
SELECT dbo.FN_URLDecode('%E4%BD%A0%E6%98%AF%E5%93%AA%E4%B8%AA')
相關推薦
SQL 將URL編碼轉漢字!
-- ============================================= -- 作 者: ruijc -- 描 述: 將Url編碼轉明文字串 -- =============================================
將url編碼資料轉換為簡單字串
將url編碼資料轉換為簡單字串 python3中 import urllib data = open('zgd.txt','r').readlines() query_list = [] for d in data: d = str(urllib.parse.unquote(d)
將PDF格式檔案轉成二進位制並生成Base64編碼,將Base64編碼轉成PDF檔案
// 為工程新增 sun.misc.BASE64Encoder和sun.misc.BASE64Decoder包: //右鍵專案》屬性》Java Build Path》jre System Library 》access rules》resolution選擇accessi
如何用excel urldecode解碼把url編碼轉為漢字?
Function URLDecode(ByVal strIn) URLDecode = "" Dim sl: sl = 1 Dim tl: tl = 1 Dim key: key = "%" Di
Android網路請求時,漢字轉化為url編碼
在開始討論編碼解碼之前,首先來明確一下問題。 什麼是application/x-www-form-urlencoded字串? 答:它是一種編碼型別。當URL地址裡包含非西歐字元的字串時,系統會將這些字元轉換成application/x-www-form-urlenc
Java將漢字轉換成URL編碼
String abcd = "中文";//或者使用abcd = "\u0061\u4E2D\u6587"; System.out.println(java.net.URLEncoder
樹莓派進階之路 (032) -字符問題(2) - 用c語言怎樣得到一個漢字的GB2312編碼(轉)
十六進制 字符串 c++ gb2 十進制 轉換 tails 表示 blog C/C++支持的是ASCII,不過漢字編碼中,GB2312與ASCII是兼容的,所以可以在C中獲得漢字的GB2312編碼 GB2312是兩個字節的,第一字節是高八位,第二字節是低八位,比如下面的程序
SQL將用戶表中已存在的數據所有姓名(漢字)轉換為拼音首字母
var 語句 ont htm bold varchar 實現 where into 實現方法: --函數 Create function [dbo].[fn_GetPy](@str nvarchar(4000)) returns nvarchar(4000) --
將數字金額轉成漢字大寫的
負數 big 漢字 all AD AR || git return /** 數字金額大寫轉換(可以處理整數,小數,負數) */ function smalltoBIG(n) { var fraction = [‘角
網頁內容以&#開頭以;結尾的編碼(四)轉漢字--python
span 測試 utl -c .com -- p s 方法 uci 在抓取下來的網頁源碼顯示的是如下的內容,而不是可讀性的漢字 (當然,如果是在Web頁面上展示,則實體會自動被瀏覽器轉為原字符,正常顯示) 經查資料後得知, 在網頁中以四開頭的是HTML實體,具體什麽是HTM
python 將圖片轉換為base64編碼轉儲進數據庫
join 圖片轉換 exce 中間 sof com sys hal ims # _*_ coding: utf-8 _*_#中間件:拓展工具遍歷文件夾,對文件夾圖片進行base64編碼,寫入數據庫,並且讀取查找方法__author__ = ‘wf15038‘__date__
linux 下URL中 UTF-8編碼、GB2312編碼與漢字之間的轉換
下面是UTF-8編碼的轉換程式碼 #include <string.h> #include <stdio.h> #include <stdlib.h> /* 16進位制字元表 */ static const char c2x_table[] = "0
C/CPP UTF8編碼轉成漢字 \u7528\u6237\u4e0d
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Java實現將任何編碼方式的txt檔案以UTF-8編碼方式轉存
本文利用JDK中的BufferedReader和BufferedWriter實現將任何編碼方式的txt檔案以UTF-8編碼方式轉存。 UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼,由Ken Thompson於199
springMVC——將url中的引數轉成實體
控制層 package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapp
sql將阿拉伯數字轉換為中文數字,MySQL數字轉大寫
CREATE FUNCTION `mathToChar`(`str` INT) RETURNS VARCHAR(100) character set gbk BEGIN DECLARE str1 VARCHAR(1) character set gbk DEFAULT '
java URL中含有漢字轉碼格式
傳入url即可實現 public static String toUtf8String(String s) { StringBuffer sb = new StringBuffer();
java將Unicode編碼轉換為漢字
java實現unicode編碼轉換為漢字編碼的程式碼! package com.amarsoft.court.app.commom; public class JSStrDecoder { public static String unescape(String sr
使用Java註解將實體類轉化為sql字串
首先是定義一個實體類,如下 /* * 定義使用者,通過註解對映到資料庫 */ @Table("user") public class User { @Column("id") private int id; @Column("username") privat