MySQL儲存全形字符和半形字元的區別

2022-09-25 19:15:10 字數 646 閱讀 7504

很不巧公司內測im的時候又遇到mysql_data_truncated錯誤,日誌記錄還是在mysql_stmt_fetch呼叫的時候出現的。鑑於之前的經驗,應該是給定的結果集繫結區域長度不夠造成的,反覆www.cppcns.com檢查了好多遍沒發現問題。我在**中都是對應的關係,比如char(20),我**中就會定義char buffer[20]陣列來儲存。看起來如此的正確完美。後面沒辦法只好列印每一行的資料,找到報錯的那一行記錄,發現字型和別的不一樣。比如:

123456789(半形)

123456789(全形)

這並不是我輸入空格控制的,而是輸入法全形半形控制的。對於全形字符,它是半形字元長度的兩倍,而我程式設計客棧的使用了utf-8,所以在資料庫中那就是乙個全形字符長度是3個位元組。

select length(column) from table_name where…;

用這個來列印長度就可以判斷出來。這個時候你就要考慮乙個**中型別的長度和資料庫字段長度匹配的問題了程式設計客棧,比如全形字符或者中文字元。資料庫中的char(20)代表的是20個字元,而不是20個位元組,這裡要注意,所以取資料的時候千萬不要全部使用這個20來做結果集長度來取資料。

本文標題: mysql儲存全形字符和半形字元的區別

本文位址: /shujuku/mysql/191615.html

全形字符轉換為半形,判斷半形和全形

判斷字元是否英文半形字元或標點 32 空格 33 47 標點 48 57 0 9 58 64 標點 65 90 a z 91 96 標點 97 122 a z 123 126 標點 public static bool isbjchar char c 判斷字元是否全形字符或標點 全形字符 65248...

java 全形字符轉半形字元

專案中正好要用到全半形字元互轉,收藏下以後備用 public class test 全形空格為12288,半形空格為32 其他字元半形 33 126 與全形 65281 65374 的對應關係是 均相差65248 將字串中的全形字符轉為半形 param src 要轉換的包含全形的任意字串 retur...

php 半形全形,php全形字符轉換為半形函式

之前試過網上找的通過ascii之類的字元替換,發現很多莫名其妙的問題。最後還是換成下面的字元替換方式了,把目前能找到的所有全形都列出來了乙個個替換吧 全形字符轉換為半形 param string str return string public function sbc2dbc str arr ar...