鍍金池/ 問(wèn)答/PHP/ PHP 編碼問(wèn)題,AES解碼后居然是ASCII碼的中文,請(qǐng)問(wèn)怎么轉(zhuǎn)成UTF8呢

PHP 編碼問(wèn)題,AES解碼后居然是ASCII碼的中文,請(qǐng)問(wèn)怎么轉(zhuǎn)成UTF8呢

圖片描述

對(duì)數(shù)據(jù)庫(kù)進(jìn)行搜索,查詢不了,查詢結(jié)果為空,通過(guò)mb_detect_encoding,知道字符串格式為ASCII編碼,可能是因?yàn)檫@樣子查詢不了,怎樣把ASCII編碼的字符串轉(zhuǎn)化為UTF8的字符串

但是ASCII不是只會(huì)有英文字母嗎

如圖第一行輸出的String,為何長(zhǎng)度為16

第三行的dump("MySQL"); 的長(zhǎng)度為5

回答
編輯回答
哚蕾咪

先用加密解密的方法試試簡(jiǎn)單的字符串加密解密流程是否正確,如果正確,可能是加密前已經(jīng)不是utf-8編碼了

2017年10月23日 08:48
編輯回答
空痕

是PHP的解密后,(mcrypt_decrypt)解密后不夠16位長(zhǎng)度的字符串,他會(huì)幫你補(bǔ)齊到16位,如果多于16位,少于32,就是32位,如此類推。難怪字符串長(zhǎng)度是這個(gè)樣子,在數(shù)據(jù)庫(kù)查詢因?yàn)樽址腻e(cuò)誤,所以查詢不到,后來(lái)使用了trim,清除兩邊的空格,就解決問(wèn)題了。

2017年10月28日 03:48