找了半天也沒找到delphi語言直接可用的utf-8編碼判斷的**
以下**摘抄改編於ide為delphixe#7 使用者id: xiaoc1026
回答的c++**
///
/// 判斷字串是否為 utf-8 編碼
///
/// 輸入字串
/// 輸入是否為 utf-8 編碼
function
iswordsutf8
(ansistr: ansistring): boolean;
var i, icount, chr: integer;
c: ansichar;
nbytes: integer; // uft-8可用1-6個位元組編碼,ascii用乙個位元組
ballascii: boolean; // 如果全部都是ascii, 說明不是utf-8
begin
result := false;
nbytes := 0;
ballascii := true;
icount := length(ansistr);
for i := 1
to icount do
begin
c := ansistr[i];
chr := ord(c);
// 判斷是否ascii編碼,如果不是,說明有可能是utf-8,ascii用7位編碼,但用乙個位元組存,最高位標記為0,o0******x;中文ascii編碼可能最高位為1
if (chr and $80) <> 0
then
ballascii := false;
// 如果不是ascii碼,應該是多位元組符,計算位元組數
if nbytes = 0
then
begin
if chr > $80
then
begin
if (chr>=$fc) and (chr<=$fd) then
// 1111 1100 and 1111 1101
nbytes := 6
else
if chr>=$f8 then
// 1111 1000
nbytes := 5
else
if chr>=$f0 then
// 1111 0000
nbytes := 4
else
if chr>=$e0 then
// 1110 0000
nbytes := 3
else
if chr>=$c0 then
// 1100 0000
nbytes := 2
else
exit(false);
dec(nbytes);
end;
endelse
// 多位元組符的非首位元組,應為 10******
begin
if (chr and $c0) <> $80
then
exit(false);
dec(nbytes);
end;
end;
// 違返規則
if nbytes > 0
then
exit(false);
// 如果全部都是ascii, 說明不是 utf-8
if ballascii then
exit(false);
result := true;
end;
ORACLE in 字串,字串,字串
因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...
字串,字串陣列,字串指標!!
字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...
字串物件python int 字串 字串物件
最近研究字串物件,稍微總結一下,以後繼續補充 如果我們須要把python的字串物件轉換為數整物件,我們須要用到int方法。比如 ainfo 222 print int ainfo 輸出的結果是222。然後我們檢視下ainfo在現的型別,通過type方法檢視下,發現是 而如果ainfo fefew22...