久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: 會員表username字段長度問題 [打印本頁]

作者: hopejyb    時間: 2023-1-24 21:32
標題: 會員表username字段長度問題
升級之前是GBK,這個字段15字節,可以放7個漢字,現在升級為UTF8之后,這個字段長度沒變,只能放5個漢字,導致那些6、7個漢字的用戶名給截掉了。
建議完善升級程序,把這個字段的長度改長一些,既是兼容性問題,也是讓用戶名可以長一些。
作者: 老周部落    時間: 2023-1-24 21:47
MySQL 很早以前就把字段長度定義為字符數了,所以數據庫字段是字符數。
理論來說也可以改造成字符數,不過因為用戶習慣、頁面展示、UCenter 與第三方對接等因素所以程序還是按 "字" 控制。
Discuz! 和 UCenter 對于用戶名有 "字" 這樣的特殊計算方法,用戶名里面的一個中文算兩個字節,所以是可以支持七個漢字+一個字母的。

(, 下載次數: 1)
作者: 專家    時間: 2023-1-24 21:49
MySQL的長度計算是按“字符數”計算的,不管是GBK還是UTF8,都是一個字算一個單位,不是按字節數計算的。
Discuz這邊有額外的長度算法(避免純漢字場景下內容過長造成UI溢出),但一般也是統一按一個漢字等于2個英文字母計算,正常情況下是不會出現只能放5個漢字這種情況的。
隨便給你舉個例子:http://www.9999xn.com/home.php?mod=space&uid=498
你看這位的用戶名就已經是6個字了

出現這種情況的話,建議檢查一下是否殘留了X3.4時代的文件。
作者: hopejyb    時間: 2023-1-25 15:10
多謝兩位回復。
作者: 耗子    時間: 2023-1-25 22:55
老周部落 發表于 2023-1-24 21:47
MySQL 很早以前就把字段長度定義為字符數了,所以數據庫字段是字符數。
理論來說也可以改造成字符數,不過 ...

  不過啊   用戶昵稱的長度 的確是個問題。    比如 政府單位 注冊的時候習慣用全城  這一全稱就是多個字
作者: 專家    時間: 2023-1-25 22:59
耗子 發表于 2023-1-25 22:55
不過啊   用戶昵稱的長度 的確是個問題。    比如 政府單位 注冊的時候習慣用全城  這一全稱就是多個字 ...

這個暫時來說還沒有太好的辦法,如果只是自用的話可以自己改一下長度
官方版本因為涉及到了UCenter,與其他應用對接之類的問題導致用戶名不能隨意加長,否則會出現跨應用兼容性問題。而且還有一方面是Discuz許多位置的UI也只留了那么大,如果用戶名加長的話會導致界面溢出甚至錯位的現象發生。
作者: 耗子    時間: 2023-1-25 23:06
專家 發表于 2023-1-25 22:59
這個暫時來說還沒有太好的辦法,如果只是自用的話可以自己改一下長度
官方版本因為涉及到了UCenter,與其 ...

  歷史遺留問題
作者: 老周部落    時間: 2023-1-26 01:25
耗子 發表于 2023-1-25 22:55
不過啊   用戶昵稱的長度 的確是個問題。    比如 政府單位 注冊的時候習慣用全城  這一全稱就是多個字 ...

政府單位全稱十幾個字基本算是標配,XXXXXX街道辦事處這種也不是沒有,按這個考量用戶名長度不現實,建議使用頭銜功能代替。




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0