看板 PHP 關於我們 聯絡資訊
※ 引述《lovejoe7010 (shen)》之銘言: : "這是 一串文字" : ^這是空格 : 如果我sql select 用 test like '%這是 一串文字%' : 或是用 test="這是 一串文字" : 都搜尋不到!!! : 用去空白還是取代字串都無法移除這空白 : TRIM(test) , REPLACE(test, ' ', '' ) : 欄位型態是 : varchar(60) character set utf8 collate utf8_bin default NULL : 但如果我用test like '%這是%'就可以搜尋到.... 上面推文有寫到,那個你以為是空白的東西不是 space 字元 實際上是什麼,可能性滿多的 - aaa[\v]bbb // 垂直 tab,神秘歷史遺跡!#!$!%$!# - aaa[\b]bbb // 倒退字元...對,backspace 也可以是一個字元 - aaa[爛掉的表情符號]bbb - aaa[其他鬼東西]bbb 所以你用 aaa[space]bbb 去搜尋是搜不到東西的 要知道實際上是什麼,你要把 binary 印出來才知道 我的習慣是會先存成文字檔之後用 xxd 來看 如果你完全沒概念怎麼肉眼看 binary,那就放棄它吧,直接人力 update 掉他... 然後 - trim 是切掉左右兩邊的空白,中間的空白是切不掉的 - 更何況那不是空白 _(:з」∠)_ - 把 '[space]' replace 成 '[空字串]' 沒有用,因為他不是 space - mysql 的 utf8 沒辦法存大部分的表情符號,請想辦法改成 utf8mb4 - 不過已經存爛掉的請當成救不回來 _(:з」∠)_ -- 延伸閱讀 ASCII 編碼 https://zh.wikipedia.org/wiki/ASCII UTF8 編碼規則 https://zh.wikipedia.org/wiki/UTF-8 查 UTF-8 編碼的工具 http://www.fileformat.info/info/charset/UTF-8/index.htm xxd 指令一下沒找到簡單易懂的說明,反正就這樣用 $ xxd yourfile.txt -- Sent from my little pony -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.81.194 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1473522044.A.4FC.html ※ 編輯: GALINE (114.27.81.194), 09/10/2016 23:46:12
lovejoe7010: 大大太專業了!!非常感謝您的指導 09/11 02:41
yiefaung: 歡樂給推 09/12 02:46