我想從另一個人管理的DB2數據庫中選擇數據,這樣我就可以將其插入到我管理的SQL數據庫中進行數據操作。我正在使用java程序來執行此操作,並且程序已成功測試了測試數據。但是,由於db2數據中的奇怪符號,我收到了錯誤。這是我的錯誤日誌。DB2 Select Character Issues
Incorrect string value: '\xC2\x97D #5...' for column 'Name' at row 1
java.sql.SQLException: Incorrect string value: '\xC2\x97D #5...' for column 'Name' at row 1
INSERT INTO `Temp_Equipment_Inventory`.`PC_Table10i` SET `Account_No`='1019TJ148001',`Inventory_No`='569931',`Building_No`='0060',`Location`='CLASSRM',`FYYR_No`='2004',`Cost`='635.00',`Name`='MICROPHONE LAVALIER WIRELESS (ISCÂD #5290) SHURE MODEL ULXP14/85 ',`CDCATY`=' ',`CDSRCE`='M',`FLDCAL`=' ',`CDACQN`='G',`FLOWNR`='Y',`FLSHAR`=' ',`CDDELT`='00',`CNYTDT`='00',`NOPURO`='6870607-01 ',`NOPIMO`='01',`CDPREI`='E',`Original_Amount`='155.00',`Serial_Code`='0309040351 ',`CDCOMP`=' ',`NOCHECK`='680146 ',`CDCOMM`='3651400',`Last_Update`='2008-07-18',`CDDEPT`='148',`Room_No`='0300 ',`Date_Scanned`=NULL,`Date_Acquired`='2004-03-09',`Manufacturer_Name`='SHURE ',`Expiry_Date`=NULL
正如你所看到的,名稱列有搞笑投擲錯誤的數據(ISCÂD#5290)。但是,當我瀏覽db2表中的數據時,這不會出現。
我已經將mysql表設置爲UTF-8 unicode ci。
我無法編輯db2數據庫,因爲它不是由我管理的。
我還有什麼可以嘗試在我的數據中解決這個符號?
DB2數據庫運行的平臺是什麼?另外,你能找出你從中獲得錯誤的_source_行,找出它實際包含的內容嗎? –
該代碼實際上包含MICROPHONE LAVALIER WIRELESS(ISC — D#5290)SHURE MODEL ULXP14/85,用於將該二進制文件轉換爲文本。 db2運行AS400平臺。所以這個問題發生在&#8212和java.String不理解那個符號。 – Evilsithgirl
'—'是'em-dash'的html編碼(像' - ',但不同)。這表明數據庫中的字符串直接輸出到網頁。我一直無法弄清楚這是如何被誤譯爲''字符(他們似乎沒有共享任何相關的數據點)。 Java實際上認爲該行在插入前是什麼(您得到的錯誤可能是從數據庫中生成的,因此,我們可能有多個翻譯)? –