程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql亂碼成績剖析與處理辦法

mysql亂碼成績剖析與處理辦法

編輯:MySQL綜合教程

mysql亂碼成績剖析與處理辦法。本站提示廣大學習愛好者:(mysql亂碼成績剖析與處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql亂碼成績剖析與處理辦法正文


開辟進程中總防止不了碰到惡心的亂碼,或許由亂碼激發的一系列成績。湧現亂碼是字符集的緣由普通而言和邏輯沒有太年夜關系,也就是說全部體系年夜的偏向沒有成績,小的處所湧現了破綻,進而招致法式不克不及正常運轉,所以說湧現亂碼是一件使人異常很惡心的工作。這裡扼要引見一下本身碰到的亂碼成績息爭決成績的進程中的設法主意和年夜致的操作,我們要學會的是若何剖析成績進而處理成績,而不只僅是照著網上的操作去一次次的處理面前的艱苦,“魚”與“漁”的差別就在於此。

交卸配景:
要完成的功效很簡略,用dom4J讀取XML文件然後借助Spring和Hibernate將數據寫入到MySql數據庫(多表)中,固然全部進程是由Spring掌握事務一次性完成,有異常停止回滾。
景象:在往數據庫裡寫數據寫到一半的時刻報錯,年夜致的毛病信息是:記載不是獨一。
剖析和操作:
檢討了一遍本身的代碼,用Spring傍邊的HibernateTemplete保留數據,應當沒有成績。

再次不雅察景象:似乎是外鍵束縛的成績,由於每當拔出到帶有外鍵的表的時刻數據逝世活錄入不出來。
剖析和操作:
既然是外鍵表的成績,起首應當肯定外鍵表中的內容是甚麼,因而手動改數據庫隔離品級檢查數據,果真外面是亂碼!

成績:亂碼是怎樣進入數據庫的?
剖析和操作:
要末讀取xml的時刻就是亂碼,要末在往數據庫裡寫的時刻釀成亂碼。再次斷點調試測試在法式中能否亂碼。

景象:在eclipse傍邊打印出來信息沒有湧現亂碼成績
剖析與操作:
這就解釋在法式中一切沒有成績,是數據庫的成績。因而先改數據庫鏈接字符串指定編碼,再改數據庫的編碼,再次斷點調試。

景象:數據庫中仍然是亂碼,然則亂碼的情勢換了,之前滿是“?”如今是一些雜亂無章的文字。
剖析和操作:
很顯著下面一系列修正編碼格局的操作起感化了,只是沒有修正對罷了。再次檢討各項的編碼格局,沒有發明成績
成績一度墮入僵局……
追求贊助:秋提出別用敕令窗口了,太費事了,用第三方客戶端吧,因而換用第三方客戶端,奇異的是客戶端顯示沒有成績!
剖析和操作:
客戶端沒有成績敕令窗口有成績,那就解釋數據庫裡曾經不是亂碼,亂碼能夠是敕令行顯示的成績。設置敕令行顯示字符,果真顯示正常!再次測試數據導入----一切OK。

思慮與總結:
景象:其其實第一次修正完各項編碼的時刻這個成績曾經算是處理了,然則因為其時本身斷點調試的時刻沒有讓法式履行完所以一向以為數據庫中仍然是亂碼。
總結:
應當在每次調試的時刻讓法式跑完,將毛病的高低文情況模仿出來,而不是只存眷毛病自己。

景象:在這裡觸及到編碼的處所有XML的編碼、dom4j的讀取編碼、數據庫編碼、數據庫銜接字符串指定編碼、敕令行窗口顯示編碼。這個中哪一個沒有留意到成績也處理不了(這裡本身沒無意識到最初一個)。
總結:
全局不雅的意思是掌握每一個掌握變量,從開端到停止,無意識的跳出情況來做假定。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved