create procedure sp_insertArticle(txt TEXT)
mysql stored procedure傳入參數txt型態為TEXT
但是傳中文的時候 call sp_insertArticle('我要中文')
報錯
Error Code: 1366. Incorrect string value: '\xE6\x88\x91\xE8\xA6\x81...' for column 'txt' at row 1 0.047 sec
我知道如果參數是varchar的話改成nvarchar就不會報Incorrect string value
但是沒有ntext這個型態啊
求救QQ
請依照 rogeryao 建議修改 database 的 CHARACTER SET 與 DEFAULT COLLATE.
現在以utf8mb4為主流.支援較為完整.可以參考相關文件.
我補充一下 查詢現有的 設定的方式.
SELECT SCHEMA_NAME
, DEFAULT_CHARACTER_SET_NAME
, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA
ORDER BY SCHEMA_NAME;
+--------------------+----------------------------+------------------------+
| SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+--------------------+----------------------------+------------------------+
| information_schema | utf8 | utf8_general_ci |
| miku | utf8mb4 | utf8mb4_0900_ai_ci |
+--------------------+----------------------------+------------------------+
2 rows in set (0.01 sec)
設定 MYSQL 資料庫編碼為 UTF-8 :
MYSQL UTF-8
若使用 PHP 開發 :
PHP UFT-8