想要一個在TSQL直接可以用來判斷欄位中是否含有造字(本倫是採用司法院造字程式) 的字在里頭的功能
爬了一下文,沒找到有人寫好的, 不過倒是有很多教你如何判別是否為中文的方法
參考了一下這篇討論, 想自已寫一個CLR看看
先在CONSOLE試看看,
public static void test2(string content)
{
Encoding Encoding950 = Encoding.GetEncoding(950);
byte[] bytes = Encoding950.GetBytes(content);
byte[] bytes1 = new byte[1];
byte[] bytes2 = new byte[2];
byte hibyte;
byte lowbyte;
for (int i = 0; i < bytes.Length; i++)
{
hibyte = bytes[i];
if (hibyte < 128) //英文或unicode
{
bytes1[0] = hibyte;
Console.WriteLine("ascii" + hibyte.ToString());
Console.WriteLine(Encoding950.GetString(bytes1));
}
else
{
i++;
lowbyte = bytes[i];
bytes2[0] = hibyte;
bytes2[1] = lowbyte;
//Console.WriteLine("high: " + hibyte.ToString());
//Console.WriteLine("low : " + lowbyte.ToString());
//Console.WriteLine("high: " + Convert.ToString(hibyte, 16));
//Console.WriteLine("low : " + Convert.ToString(lowbyte, 16));
Console.WriteLine(Encoding950.GetString(bytes2));
string hex = Convert.ToString(hibyte, 16) + Convert.ToString(lowbyte, 16);
Console.WriteLine("hex: " + hex);
Console.WriteLine(hex.CompareTo("A140").ToString()); //-1為範圍外
Console.WriteLine("FEFE".CompareTo(hex).ToString()); //1為範圍外
}
}
Console.ReadLine();
}
不太確定這樣判斷high byte和low byte對不對
但試了幾個造字看來判斷都正確地...
最後延續之前寫的DLL ( sql server clr user defined functions), 再加一個function 部署到DB就大功告成了..
2010年3月16日 星期二
訂閱:
張貼留言 (Atom)
publish error allowDefinition='MachineToApplication'
一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...
-
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
-
在一台windows 2016的主機上,某一天,用遠端登入後,出現了以下的訊息.... 遠端工作階段中斷,因為沒有提供授權的遠端桌面授權伺服器可以使用。請連伺服器系統管理員。 這啥啊........... 想不到,在MOBILE01找到了解決...........哈哈...
-
SQL Server 2005 後,提供EXCEP 和INTERSECT, 功能和ORACLE的MINUS, INTERSECT相同 EXCEP 找出存在於第一個子集,但不存在於第二個子集的筆數 INTERSECT 找出皆存在於二個子集中的筆數 這二個方法很方便查找有多...
沒有留言:
張貼留言