(一)後臺數據傳入MySQL數據庫亂碼:
可能是MySQL默認數據字符集編碼不匹配的問題
1、最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值(修改前請先關閉MySQL服務),
如 default-character-set = utf8 character_set_server = utf8
修改完後,重啓mysql的服務,service mysql restart
使用 mysql> SHOW VARIABLES
LIKE 'character%';查看,發現數據庫編碼均已改成utf8
2、 還有一種修改mysql默認字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
一般就算設置了表的mysql默認字符集爲utf8並且通過UTF-8編碼發送查詢,你會發現存入數據庫的仍然是亂碼。
問題就出在這個connection連接層上。解決方法是在發送查詢前執行一下下面這句:
SET NAMES 'utf8';
它相當於下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
(二)React前端發送OPTIONS請求,出現了重定向問題,根據網上資料顯示,OPTIONS請求是一種用於試探的請求,通過OPTIONS請求來測試相關接口是否可以進行連接,若可以則進行第二次的正式的請求。問題在於有部分後臺系統會對OPTIONS請求進行攔截,之後會在前臺報跨域錯誤。SHIRO可以通過修改文件進行處理