程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 關於mysql數據庫“Incorrectstringvalue:'\xFF\xFE\x0DNSb

關於mysql數據庫“Incorrectstringvalue:'\xFF\xFE\x0DNSb

編輯:MySQL綜合教程

或許很多人能和我一樣在使用mysql數據庫時會遇到這樣的問題,無法顯示中文字符,而且無法無法被加載進數據庫。

這就是程序員都會遇到的字符編碼問題,接下來以JAVA鏈接數據庫為列說明。

package fang.Demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.swing.JPopupMenu.Separator;

public class ConnectDemo04 {
	// 定義MySQL的數據庫驅動程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	// 定義MySQL數據庫的連接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/demo2";
	// MySQL數據庫的連接用戶名
	public static final String DBUSER = "root";
	// MySQL數據庫的連接密碼
	public static final String DBPASS = "";

	public static void main(String args[]) throws Exception { // 所有的異常拋出
		Connection conn = null; // 數據庫連接
		PreparedStatement stmt = null; // 數據庫操作
		ResultSet res = null;
		Class.forName(DBDRIVER); // 加載驅動程序
		String name = "方薩安" ;	// 表示姓名
		String sql = "INSERT INTO userclob(name,note) VALUES (?,?) " ;
		Class.forName(DBDRIVER) ;	// 加載驅動程序
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
		stmt = conn.prepareStatement(sql) ;	// 創建PreapredStatement對象
		File f = new File("d:" + File.separator + "test.txt") ;
		InputStream input = null ;
		input = new FileInputStream(f) ;	// 通過輸入流讀取文件
		stmt.setString(1,name) ;
		stmt.setAsciiStream(2,input,(int)f.length()) ;
		stmt.executeUpdate() ;
		conn.close() ;			// 數據庫關閉
	}
};

這個java程序讀取的是D盤目錄下的test.txt文件

\

所報錯誤:

\

遇到這種問題可以看到錯誤提示是不正確的數據類型(大概是這個樣子),然後我試了試數字和英文字母均可成運行,並寫入數據庫庫

\

數據庫數據圖

\

由此可見,此問題必定是數據字符編碼不正確引起的,那麼如何解決呢?

從我建的數據表易知,他們都是utf8類型的國際化通用數據類型(推薦)

可是記事本的編碼呢?它是什麼類型?

但是……

\

但是我們卻是可以設置的打開txt文件點擊另存為—>設置編碼。

\

設置為數據編碼utf8

再次運行java程序

你會發現錯誤消失了,打開數據庫文件你會發現數據已經成功寫入數據表。

\

當然,網站報錯的原理和這是一樣的都是,數據表字符編碼設置的問題,大家認真設置下就OK了

設置詳見另一篇博文。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved