半個漢字的校驗與處理 C

2021-04-23 23:03:37 字數 675 閱讀 2898

由於漢字是2個字元(這裡不討論可變字元的情形),因此,在c語言中,用乙個固定長度的buffer 存放包含漢字的字串,就有漢字被截斷從而導致半個漢字的情形的出現。半個漢字的存在,對字串的後續處理,會帶來一定的麻煩,比如在xml文件、或者sql語句中,如果存在半個漢字,就會導致xml解析失敗,或者sql執行錯誤的異常。為了解決這個問題,有必要找到並刪除半個漢字,或者存放的時候,即便截斷,也不產生新的半個漢字。

以下是我近期對半個漢字的處理,c++**如下:

// strsrc: 原始字串

// nmaxlen: 截斷後的最大長度

char *gettruncate(char *strsrc, int nmaxlen)

int len = strlen(strsrc);

if (len == 0)

int size = len; bool bflag = false;

if (len >= nmaxlen)

int index = 0; int mid = 0;

for (int i = size - 1; i >= 0; i--)

index++;

}if (bflag) // 原始字串的長度比預留的空間要大

else

}else

else

}return strsrc;

}

C 對輸入的字元是否是漢字的校驗

接到測試提了乙個bug,說有個校驗姓名是否是漢字的功能不正確。測試的漢字為 檢視 校驗方法是用正規表示式。正則為 u4e00 u9fa5 然後網上查了一下相關的驗證方式。通過正則驗證的,正規表示式都是上面那個,比如 驗證1,驗證2 因為這個驗證是大部分漢字都能校驗通過,部分漢字校驗不通過,猜想應該是...

python漢字的處理

計算機裡不能直接的處理各種文字,需要將各種文字編碼之後存入計算機進行後續的處理。不管是漢字的編碼還是其他語言文字元號的編碼,都是使用01的不同組合序列來表示不同的符號。ascii編碼 american standard code for information interchange,美國資訊互換標...

漢字處理的工具

usr bin env python coding utf 8 漢字處理的工具 判斷unicode是否是漢字,數字,英文,或者其他字元。全形符號轉半形符號。def is chinese uchar 判斷乙個unicode是否是漢字 if uchar u u4e00 and uchar u u9fa5...