C#全形和半形轉換
在計算機螢幕上,一個漢字要佔兩個英文字元的位置,人們把一個英文字元所佔的位置稱為"半形",相對地把一個漢字所佔的位置稱為"全形"。在漢字輸入時,系統提供"半形"和"全形"兩種不同的輸入狀態,但是對於英文字母、符號和數字這些通用字元就不同於漢字,在半形狀態它們被作為英文字元處理;而在全形狀態,它們又可作為中文字元處理。半形和全形切換方法:單擊輸入法工具條上的 按鈕或按鍵盤上的Shift+Space鍵來切換。
(1)全形--指一個字元佔用兩個標準字元位置。
漢字字元和規定了全形的英文字元及國標GB2312-80中的圖形符號和特殊字元都是全形字元。一般的系統命令是不用全形字元的,只是在作文書處理時才會使用全形字元。
(2)半形--指一字元佔用一個標準的字元位置。
通常的英文字母、數字鍵、符號鍵都是半形的,半形的顯示內碼都是一個位元組。在系統內部,以上三種字元是作為基本程式碼處理的,所以使用者輸入命令和引數時一般都使用半形。
B 全形與半形各在什麼情況下使用?
全形佔兩個位元組,半形佔一個位元組。
半形全形主要是針對標點符號來說的,全形標點佔兩個位元組,半形佔一個位元組,而不管是半形還是全形,漢字都還是要佔兩個位元組。
在程式設計序的原始碼中只能使用半形標點(不包括字串內部的資料)
在不支援漢字等語言的計算機上只能使用半形標點(其實這種情況根本就不存在半形全形的概念)
對於大多數字體來說,全形看起來比半形大,當然這不是本質區別了。
C 全形和半形的區別
全形就是字母和數字等與漢字佔等寬位置的字。半形就是ASCII方式的字元,在沒有漢字輸入法起做用的時候輸入的字母數字和字元都是半形的。
在漢字輸入法出現的時候,輸入的字母數字預設為半形,但是標點則是預設為全形,可以通過滑鼠點選輸入法工具條上的相應按鈕來改變。
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");
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608975/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 全形轉半形Python
- 全形轉半形函式函式
- JavaScript全形和半形相互轉換JavaScript
- js全形字元轉為半形字元JS字元
- 關於oracle資料庫全形數字轉換半形數字方法Oracle資料庫
- 安卓資源字串中加全形空格、半形空格、換行、@%等特殊字元安卓字串字元
- C# bytes[]和sting互相轉換C#
- C# 列舉遍歷和轉換C#
- windows10系統下微軟五筆全形半形如何切換Windows微軟
- 搜狗輸入法切換到半形
- C#轉換Datetime為 UnixTimeStamp方法和坑點C#
- c#入門-型別轉換和運算C#型別
- c#列舉轉換C#
- C# 型別轉換C#型別
- C#和JAVA的RSA金鑰、公鑰轉換C#Java
- C#中JSON轉換類C#JSON
- 使用C#,VB和Java將PDF轉換為DOC / DOCXJava
- 瞭解下C# 型別轉換C#型別
- C#中JSON字串和Dictionary字典型別的相互轉換C#JSON字串型別
- C#位元組陣列byte[]和字串string如何互相轉換C#陣列字串
- C#/VB.NET 實現Word和ODT文件相互轉換C#
- (C#)時間戳、DateTime相互轉換C#時間戳
- C#:檔案、byte[]、Stream相互轉換C#
- js顯式轉換和隱式轉換JS
- 客戶端和服務端(C#) 時間戳的生成和轉換客戶端服務端C#時間戳
- C# 顯式轉換關鍵字 explicitC#
- C# 將PDF文件轉換為Markdown文件C#
- 【型別轉換】使用c#實現簡易的型別轉換(Emit,Expression,反射)型別C#MITExpress反射
- C#資料型別及其轉換詳解C#資料型別
- C#自定義控制元件—轉換開關C#控制元件
- C#使用struct直接轉換下位機資料C#Struct
- 好用的向量圖形轉換軟體:vector magic for MacMac
- CSS3的過渡,動畫,圖形轉換CSSS3動畫
- List和ObservableCollection的轉換
- 工程座標轉換方法C#程式碼實現C#
- Antd:Tree樹形控制元件資料解析(JSON轉換)控制元件JSON
- Android 多國語言轉換 Excel 和 Excel 轉換為 stringAndroidExcel
- trim(用於去半形空格(英文))
- C#學習 [型別系統] 型別轉換(11)C#型別