PHP連線SQL資料庫無法顯示emoji表情的解決辦法(變成問號、1366 Incorrect string value)
問題1
當加入emoji表情時,SQL資料庫提示1366 Incorrect string value錯誤:
mysql 1366: Incorrect string value: '\xF0\x9F\xA5\xB0\xF0\x9F for column ‘msg’ at row 1
這是因為emoji表情符號不能直接使用普通的utf-8編碼,而是要採用utf8mb4編碼,在每次連線的時候把編碼設定成utf8mb4才可以解決。
解決步驟:
- 在連線資料庫的php檔案裡,在每次連線前都把編碼都設定為utf8mb4
程式碼:
$conn = new PDO($dsn, $username, $password);
$conn->exec("set charset utf8mb4");
或者:
$conn = new PDO($dsn, $username, $password);
$conn->query("set character set utf8mb4");
問題2
emoji表情被成功加入,但是在資料庫裡面變成了問號,如下圖
這是因為資料庫的編碼仍然是utf8,而不是utf8mb4,解決方法十分簡單粗暴:把資料庫裡面有關字元編碼的專案全部改為utf8mb4,因為utf8mb4是utf8的超集,因此不會有相容性問題,可以放心修改
修改欄位的編碼
修改資料庫的編碼
修改表的編碼
通用修改
相關文章
- 【BUG記錄】MySQL插入Emoji表情報錯"Incorrect string value"MySql
- 網站顯示無法連線資料庫網站資料庫
- 解決無法連線SQL Server資料庫的方法BWSQLServer資料庫
- Windows無法配置此無線連線這個問題的解決辦法Windows
- sql server資料庫連線失敗/無法附加解決過程SQLServer資料庫
- Mysql伺服器無法存emoji表情的解決方案MySql伺服器
- HGAdmin無法連線本地資料庫解決方式資料庫
- 解決Mysql資料庫插入資料出現問號(?)的解決辦法MySql資料庫
- java.sql.SQLException: Incorrect string valueJavaSQLException
- Laradock 下建立 storage:link 軟連線資源無法訪問的解決辦法
- MYSQL++ 資料庫連線超時的解決辦法LTMySql資料庫
- discuz資料庫搬家,改密碼後無法訪問解決辦法資料庫密碼
- 網站無法連線資料庫怎麼辦?網站資料庫
- php onethink驗證碼不顯示的解決辦法PHP
- 【YashanDB資料庫】PHP無法透過ODBC連線到資料庫資料庫PHP
- SourceTreet提交時顯示remote: Incorrect username or password ( access token )(4種解決辦法)REM
- link/Extended dependency 無法顯示連線
- SQL Server 資料庫無法重新命名的解決SQLServer資料庫
- 寶塔Linux皮膚FTP無法連線的解決辦法LinuxFTP
- 上網站無法連線資料庫怎麼辦?網站資料庫
- IDEA無法連線docker中的資料庫的問題IdeaDocker資料庫
- phpmyadmin在PHP7中顯示空白的解決辦法!PHP
- 修復Arch Linux和Manjaro Linux無法顯示emoji的問題LinuxJAR
- 寶塔皮膚無法遠端連線資料庫的解決方法資料庫
- Xshell連線Linux慢問題解決辦法Linux
- 成功解決github無法顯示圖片問題Github
- 蘋果iOS12.1.2顯示有4G訊號但無法上網的解決辦法蘋果iOS
- Firefox顯示您的連結不安全的解決辦法Firefox
- iis網站資料庫無法連線資料庫網站資料庫
- 連線sql server時,不能使用127.0.0.1的解決辦法SQLServer127.0.0.1
- 資料庫無法註冊至監聽服務解決辦法資料庫
- iOS 大圖顯示解決辦法iOS
- IOS下圖片不能顯示問題的解決辦法iOS
- SQL SERVER 資料庫被標記為“可疑”的解決辦法SQLServer資料庫
- win10u盤無法顯示資料夾怎麼辦_win10系統u盤資料夾無法顯示出來解決方法Win10
- vmware不顯示usb圖示解決辦法
- MySQL 資料庫儲存 Emoji 表情及特殊符號MySql資料庫符號
- Mysql實現全外部連線(mysql無法使用full join的解決辦法)MySql