C#全形和半形轉換
在電腦螢幕上,一個漢字要佔兩個英文字元的位置,人們把一個英文字元所佔的位置稱為"半形",相對地把一個漢字所佔的位置稱為"全形"。在漢字輸入時,系統提供"半形"和"全形"兩種不同的輸入狀態,但是對於英文字母、符號和數字這些通用字元就不同於漢字,在半形狀態它們被作為英文字元處理;而在全形狀態,它們又可作為中文字元處理。半形和全形切換方法:單擊IME工具條上的 按鈕或按鍵盤上的Shift+Space鍵來切換。
(1)全形--指一個字元佔用兩個標準字元位置。
漢字字元和規定了全形的英文字元及國標GB2312-80中的圖形符號和特殊字元都是全形字元。一般的系統命令是不用全形字元的,只是在作文文書處理時才會使用全形字元。
(2)半形--指一字元佔用一個標準的字元位置。
通常的英文字母、數字鍵、符號鍵都是半形的,半形的顯示內碼都是一個位元組。在系統內部,以上三種字元是作為基本代碼處理的,所以使用者輸入命令和參數時一般都使用半形。
B 全形與半形各在什麼情況下使用?
全形佔兩個位元組,半形佔一個位元組。
半形全形主要是針對標點符號來說的,全形標點佔兩個位元組,半形佔一個位元組,而不管是半形還是全形,漢字都還是要佔兩個位元組。
在編程式的原始碼中只能使用半形標點(不包括字串內部的資料)
在不支援漢字等語言的電腦上只能使用半形標點(其實這種情況根本就不存在半形全形的概念)
對於大多數字型來說,全形看起來比半形大,當然這不是本質區別了。
C 全形和半形的區別
全形就是字母和數字等與漢字占等寬位置的字。半形就是ASCII方式的字元,在沒有漢字IME起做用的時候輸入的字母數字和字元都是半形的。
在漢字IME出現的時候,輸入的字母數字預設為半形,但是標點則是預設為全形,可以通過滑鼠點擊IME工具條上的相應按鈕來改變。
D 關於“全形”和“半形”:
全形:是指中GB2312-80(《資訊交換用漢字編碼字元集·基本集》)中的各種符號。
半形:是指英檔案ASCII碼中的各種符號。
/// 轉全形的函數(SBC case)
///
///任一字元串
///全形字元串
///
///全形空格為12288,半形空格為32
///其他字元半形(33-126)與全形(65281-65374)的對應關係是:均相差65248
///
public static String ToSBC(String input)
{
// 半形轉全形:
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 32)
{
c[i] = (char)12288;
continue;
}
if (c[i] < 127)
c[i] = (char)(c[i] + 65248);
}
return new String(c);
}
/**/
// /
// / 轉半形的函數(DBC case)
// /
// /任一字元串
// /半形字元串
// /
// /全形空格為12288,半形空格為32
// /其他字元半形(33-126)與全形(65281-65374)的對應關係是:均相差65248
// /
public static String ToDBC(String input)
{
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 12288)
{
c[i] = (char)32;
continue;
}
if (c[i] > 65280 && c[i] < 65375)
c[i] = (char)(c[i] - 65248);
}
return new String(c);
}
[TestMethod]
public void DBCTEST()
{
string strSBC = "中華1259test";
string result = ToDBC(strSBC);
Console.WriteLine(result);
Assert.AreEqual(result,"中華1259test");
}