1、字母大小寫處理
private string GetChangedStr(string oldStr, strType type)
{
string newStr = "";
//使用 TextInfo 類時,必須指定區域性信息。多數情況下,可默認當前正在使用的區域性。
CultureInfo culInfo = Thread.CurrentThread.CurrentCulture;
TextInfo tInfo = culInfo.TextInfo;
switch (type)
{
case strType.Upper: //統一轉換成大寫
newStr = tInfo.ToUpper(oldStr);
break;
case strType.Lower: //統一轉換成小寫
newStr = tInfo.ToLower(oldStr);
break;
case strType.FirToUpper: //首字符大寫
newStr = tInfo.ToTitleCase(oldStr);
break;
case strType.UTL_LTU: //大寫轉小寫,小寫轉大寫。
char[] oldArr = oldStr.ToCharArray();
for (int i = 0; i < oldArr.Length; i++)
{
if (char.IsUpper(oldStr, i))
newStr += oldArr[i].ToString().ToLower();
else
newStr += oldArr[i].ToString().ToUpper();
}
break;
default:
break;
}
return newStr;
}
enum strType
{
Upper,
Lower,
FirToUpper,
UTL_LTU
}
2、字母與ASCII的互換
在Web開發時,ASCII的作用!(American Standard Code for Information Interchange,美國信息交換標准代碼)
舉個例子:' 單引號在sql語句中是個殺手,但是如果把(')它轉換成 "&#" + ASCII碼 +";" 去存儲,就可以有效的防治sql注入了!
private string strToASCII(string oldStr)
{
string newStr = "參數不能為空!!!";
if (!string.IsNullOrEmpty(oldStr))
{
int num;
if (int.TryParse(oldStr, out num))
{
newStr = ((char)num).ToString();
}
else
{
if (Encoding.GetEncoding("unicode").GetBytes(new char[] { oldStr[0] })[1] == 0) //判斷是否為字母
{
newStr = Encoding.GetEncoding("unicode").GetBytes(oldStr)[0].ToString();
}
}
}
return newStr;
}
3、漢字與區位碼
為了使每一個漢字有一個全國統一的代碼,1980年,我國頒布了第一個漢字編碼的國家標准: GB2312-80《信息交換用漢字編碼字符集》基本集,這個字符集是我國中文信息處理技術的發展基礎,也是目前國內所有漢字系統的統一標准。由於國標碼是四位十六進制,為了便於交流,大家常用的是四位十進制的區位碼。
所有的國標漢字與符號組成一個94×94的矩陣。在此方陣中,每一行稱為一個“區”,每一列稱為一個“位”,因此,這個方陣實際上組成了一個有94個區(區號分別為0 1到94)、每個區內有94個位(位號分別為01到94)的漢字字符集。
一個漢字所在的區號和位號簡單地組合在一起就構成了該漢字的“區位碼”。
在漢字的區位碼中,高兩位為區號,低兩位為位號。在區位碼中,
01-09區為682個特殊字符,
16~87區為漢字區,包含6763個漢字。其中16-55區為一級漢字(3755個最常用的漢字,按拼音字母的次序排列),
56-87區為二級漢字(3008個漢字,按部首次序排列);
88-94 區: 空白, 留待擴展。
private string strToLocCode(string oldStr)
{
try
{
string newStr = "";
byte[] btArray = new byte[2]; //定義字節數組用於存儲漢字
btArray = Encoding.Default.GetBytes(oldStr); //賦值
int first = (short)(btArray[0] - '\0');
int second = (short)(btArray[1] - '\0');
newStr = (first - 160).ToString() + (second - 160).ToString(); //計算區位碼
return newStr;
}
catch (Exception e)
{
return e.Message+"請輸入正確的漢字";
}
}
交流群:225443677