1. 程式人生 > >SQL 將URL編碼轉漢字!

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 = [‘角

網頁內容以&#開頭以;結尾的編碼(&#22235;)漢字--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

java 編碼填充 word 模板生成 word合同,並word合同成pdf 文件

                        &nbs

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();

javaUnicode編碼轉換為漢字

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