2015-03-31 81 views
0

我已經創建了一個應用程序。用於前端和後端的Visual Studio 2010是MySQL 5.3版本。在這個應用程序中,我在MySQL中使用存儲過程。我用英文插入數據並且工作正常。但我插入的Unicode日期(如馬拉或印地文)用相同的存儲過程,則產生一個錯誤:列「\ xE0 \ XA4 \ X90 \ xE0 \ XA4 ...」:如何在MySQL存儲過程中插入Unicode數據

不正確的字符串值'p_hindicontent'在第1行

請幫幫我。

預先感謝您

+1

那麼,你需要***風采***什麼!向我們展示存儲過程以及調用它的代碼。我們無法閱讀您的屏幕 - 也沒有您的想法 - 您必須在此處向我們展示...... – 2015-03-31 09:55:31

+1

該字符串是否以「[ऐ]開頭(http://www.fileformat.info/info/unicode/ char/0910/index.htm)「字符?如果是這樣,你發送給MySQL的字符串用UTF-8編碼 - 但MySQL認爲它們是用其他字符集編碼的;您必須正確設置[數據庫連接的字符集](https://dev.mysql.com/doc/en/charset-connection.html)。我們需要了解你如何連接到MySQL以進一步提供建議。 – eggyal 2015-03-31 10:08:29

回答

2

,你必須這樣寫存儲過程:

DROP PROCEDURE IF EXISTS `cn_marathidata`. 
`SPemp` 
$$ 
CREATE DEFINER = `root`@ 
`localhost` 
PROCEDURE `SPemp` (in P_name text charset utf8, in P_address text charset utf8) 
BEGIN 
INSERT INTO Employee 
    (
    name, 
    address 

) 
VALUES 
    (
    P_name, 
    P_address 
); 
END $$ 

DELIMITER; 

希望這個技巧可以幫助你

+0

是的,這就對了!由於https://bugs.mysql.com/bug.php?id=13909錯誤,有必要爲參數,結果以及局部變量顯式指定字符集。 – 2015-04-30 06:28:32

相關問題