anghua_778899: if ByteType(s,i) = mbSingleByte then 在delphi7中好用,但在delphi2010中不好用,是什么問題
uj5u.com熱心網友回復:
因為D7的string是ansistring 而2010的string是unicodestring(類似于D7中的widestring)ansi下 一個中文需要2個位元組存盤, 而ansistring最小單位字符是1位元組, 所以會出現遍歷到半個中文字的情況, 所以需要判斷是否SingleByte
而unicode下最小單位是2個字符, 也就是說一個中文和一個英文或一個數字都占一個字符(2位元組), 也就不會出現讀取半個中文字的情況, 所以無需這么判斷了
而ByteType這個函式似乎是為了unicode兼容本地ansi字符保留下來的(以前delphi說明檔案上見過這么一句)
uj5u.com熱心網友回復:
SB-CSDN 回復沒法編輯上面有句說錯了 unicode下最小單位是1字符(2位元組), 不是2字符
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/34230.html
標籤:數據庫相關
上一篇:Delphi 物件屬性設定的問題
