Android读取中文文件乱码解决方法

Android读取中文文件乱码解决方法
Android读取中文文件乱码解决方法

最近在做个MP3播放器,出现中文乱码问题,在网上找了很多解决办法,我整理了出现乱码的点和解决方案,拿出来和大家共享一下

1.读取中文文件乱码解决方法

package com.apj.conv;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStreamReader;

import android.app.Activity;

import android.os.Bundle;

import android.os.Environment;

import android.widget.TextView;

public class ConverActivity extends Activity {

private TextV iew textview ;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.360docs.net/doc/1f12089979.html,yout.main);

textview = (TextView) findView ById(R.id.lrctext);

System.out.println("==============convertCodeAndGetText begin============== ") ;

///获得SDCard中文件的路径

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator ;

String tochinese = convertCodeAndGetText(path+"a.txt");

System.out.println(tochinese);

System.out.println("==============cconvertCodeAndGetText end==============");

textview.setText(tochinese);

}

public String convertCodeAndGetText(String str_filepath) {//转变编码

File file = new File(str_filepath);

BufferedReader reader;

String text = "";

try {

FileInputStream fis = new FileInputStream(file);

BufferedInputStream in = new BufferedInputStream(fis);

in.mark(4);

byte[] first3bytes = new byte[3];

in.read(first3bytes);

in.reset();

if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB

&& first3bytes[2] == (byte) 0xBF) {// utf-8

reader = new BufferedReader(new InputStreamReader(in, "utf-8"));

} else if (first3bytes[0] == (byte) 0xFF

&& first3bytes[1] == (byte) 0xFE) {

reader = new BufferedReader(new InputStreamReader(in, "unicode")); } else if (first3bytes[0] == (byte) 0xFE && first3bytes[1] == (byte) 0xFF) { reader = new BufferedReader(new InputStreamReader(in, "utf-16be")); } else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFF) { reader = new BufferedReader(new InputStreamReader(in, "utf-16le")); } else {

reader = new BufferedReader(new InputStreamReader(in, "GBK"));

}

String str = reader.readLine();

while (str != null) {

text = text + str + "\n";

str = reader.readLine();

}

reader.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return text;

}

}

2. 连接网络读取文件内容中文乱码解决办法

URL myFileUrl = null;

myFileUrl = new URL(url);

HttpURLConnection conn;

conn = (HttpURLConnection) myFileUrl.openConnection();

conn.setDoInput(true);

conn.connect();

InputStream is = conn.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is, "GB2312"));

sb = new StringBuffer();

String data = "";

while ((data = br.readLine()) != null) {

sb.append(data+"\n");

}

String result = sb.toString();

3.读取网络文件中文名下载乱码解决办法

1.先在设置服务器编码:找到Tomcat安装目录下的server.xml文件(Tomcat

6.0\conf\server.xml)。设置编码为UTF-8

connectionTimeout="20000" protocol="HTTP/1.1"/>

2. android 中代码为:

try {

lrcUrl = "http://192.168.0.214/vote/mp3/" + URLEncoder.encode("中文.mp3","UTF-8"); } catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

int result1 = downFile(lrcUrl, "mp3/", "中文.mp3");

**

* 该函数返回整型( -1:代表下载文件出错;0:代表下载成功;1:代表文件已存在)

**/

public int downFile(String urlStr, String path, String fileName) {

InputStream inputStream = null;

try {

FileUtils fileUtils = new FileUtils();

if (fileUtils.isFileExist( fileName,path )) {

return 1;

} else {

inputStream = getInputStreamFromUrl(urlStr);

File resultFile = fileUtils.write2SDFromInput(path, fileName, inputStream); if (resultFile == null) {

return -1;

}

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

return -1;

} finally {

try {

inputStream.close();

} catch (Exception e2) {

e2.printStackTrace();

}

}

return 0;

}

/**

* 根据URL得到输入流

*

* @param urlStr

* @return

* @throws MalformedURLException

* @throws IOException

*/

public InputStream getInputStreamFromUrl(String urlStr)

throws MalformedURLException, IOException {

url = new URL(urlStr);

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

InputStream inputStream = urlConn.getInputStream();

return inputStream;

}

使用POI来处理Excel和Word文件格式

// 文件二进制输入流 private InputStream is = null; // 当前的Sheet private int currSheet; // 当前位置 private int currPosition; // Sheet数量 private int numOfSheets; // HSSFWorkbook HSSFWorkbook workbook = null; // 设置Cell之间以空格分割 private static String EXCEL_LINE_DELIMITER = " "; // 设置最大列数 private static int MAX_EXCEL_COLUMNS = 64; // 构造函数创建一个ExcelReader public ExcelReader(String inputfile) throws IOException, Exception { // 判断参数是否为空或没有意义 if (inputfile == null || inputfile.trim().equals("")) { throw new IOException("no input file specified"); } // 取得文件名的后缀名赋值给filetype this.filetype = inputfile.substring(https://www.360docs.net/doc/1f12089979.html,stIndexOf(".") + 1); // 设置开始行为0 currPosition = 0; // 设置当前位置为0 currSheet = 0; // 创建文件输入流 is = new FileInputStream(inputfile);

mysql乱码处理

用MS SQL和oracle9 太吃内存,有点大,全给卸载了. 安装了mysql占内存小,方便使用! version:mysql-essential-5.1.36 在MySQL Command Line Client显示中文一切正常; 在eclipse中新工程,连接到mysql,读取一个表显示: 代码: package com.mch.mysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Mysql1 { public static void main(String[] args) { String url ="jdbc:mysql://localhost/test"; String user="root"; String password="******"; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); Connection conn= DriverManager.getConnection(url,user,password); Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("select * from pet"); while(rs.next()){ System.out.print("name:" + rs.getString(1)); System.out.print("\t所有者:" + rs.getString(2)); System.out.print("\tbirth:" + rs.getString("birth")); System.out.println(); } rs.close(); stmt.close(); conn.close(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } 显示乱码?号.

C#导出Excel文件名中文乱码问题

C#导出Excel文件名中文乱码问题 string nm="["+Label1.Text+"]"+ DateTime.Now.ToString("yyyy-mm-dd")+".xls"; DataTable dt = sqlHelp.GetObject(sql).Tables[0]; StringBuilder sb = new StringBuilder(); sb.Append("成绩排名\t考试成绩\t学员名称\t考试时间"); StringWriter sw = new StringWriter(); sw.WriteLine(sb.ToString()); for (int i = 0; i < dt.Rows.Count; i++) { int q = i + 1; sb = new StringBuilder(); sb.Append(q.ToString()); sb.Append("\t" + dt.Rows[i][0].ToString()); sb.Append("\t" + dt.Rows[i][1].ToString() + "\t" + dt.Rows[i][2].ToString()); sw.WriteLine(sb.ToString()); } sw.Close(); Response.Clear(); Response.Buffer = true; Response.Charset = "GB2312"; Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(nm, Encoding.UTF8).ToString());

poi读写Excel文件

一、Excel基础 二、HSSF概况 三、通过usermodel读取文件 四、通过usermodel写入文件 五、通过eventusermodel读取文件 六、HSSF电子表格结构 七、通过HPSF读取文档属性 八、文档摘要信息 九、附录 ━━━━━━ 正文: ━━━━━━ 在上一篇文章中,我们介绍了POI项目的基本概念,了解了如何用POI来读写OLE 2复合文档结构,并给出了两个简单的例子:用POI来读写Excel文件的Workbook流。本文继续前文的话题,阐述如何用POI来读取/写入完整的Excel文件。 约定:POI项目2.0版现在已经接近正式发行阶段,开发进度迅速,不断有新的功能集成到原有的系统,同时也有对原有系统的修改。为了保证本文的及时性,本文将按照最近的1.9开发版说明。虽然编译最近的发行版源代码也能正常运行,但现在的代码和2.0的发行版会有一些出入。 一、Excel基础 Microsoft Excel 97文件格式也被称为BIFF8,最近版本的Excel只对该格式作了少量的改动。增加对新格式的支持除了增加项目的复杂性之外,唯一的效果也许只是不得不使每个用户升级代码,没有什么实际的好处。因此,在下文说明中,凡是提到Excel 97格式的地方其实都是指Excel从97到XP的格式。 二、HSSF概况 POI项目实现的Excel 97文件格式称为HSSF——也许你已经猜到,HSSF是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”(微软使某些原本简单的事情过分复杂,同时又过分简单地处理了某些原本需要灵活性的事情,让人不胜佩服!)也

解决openfire在使用MySQL数据库后的中文乱码问题

解决openfire在使用MySQL数据库后的中文乱码问题 openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据 存储可以采用多种数据库,如MySQL,Oracle等。 在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣, 而且从现象上可以看出openfire内部的一些机制。 实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等。如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的。接下来重启一下openfire,再用建立的帐号登录 客户端或进入后台管理端查看,会发现所有的中文全都变成了问号。登录到数据库中进行查看,发现所有的中文字符也均为问号,这说明了两个问题: openfire具有应用层缓存 数据库编码存在问题 解决办法其实也很简单,首先要保证你为openfire创建的数据库编码是utf8的,建表语句如下: create database openfire default character set utf8 default collate utf8_general_ci 当你原来就创建好数据库时,你可以用: alter database openfire default character set utf8 default collate utf8_general_ci; 其次,在初始化openfire数据库,即第一次配置openfire服务器时,在连接数据库那里的连 接串要加入字符编码格式,必须在连接里增加UTF8的编码要求,连接字符串设置如下: jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8 如果已经安装完成,这个配置也是可以改动的,直接到openfire的安装目录下,找到 conf/openfire.xml这样一个文件,打开找到如下的XML节,修改其中的serverURL即可 com.mysql.jdbc.Driver jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncodi ng=utf8 注意:由于&具有特殊含义,因此原&符号必须被转义为&

java的POI操作Excel文件

java的POI操作Excel文件(2) 现在我要做的东西基本完成啦,我把这段时间使用POI的一些心得总结出来,希望能对和我遇到相同问题的朋友有所帮助,至于POI基本的使用方法,自己去看文档吧。 1、设置分页符的bug POI里的HSSFSheet类提供了setRowBreak方法可以设置Sheet的分页符。 Bug:如果你要设置分页符的Sheet是本来就有的,并且你没有在里面插入过分页符,那么调用setRowBreak时POI会抛出空指针的异常。 解决方法:在Excel里给这个sheet插入一个分页符,用POI打开后再把它删掉,然后你就可以随意插入分页符了。 如果sheet是由POI生成的则没有这个问题。我跟踪了setRowBreak的源代码,发现是Sheet.Java下的PageBreakRecord rowBreaks这个变量在搞鬼,如果Sheet里原来没有分页符,开发这个模块的那位兄台忘了为这个对象new实例,所以只能我们先手工给Excel插入一个分页符来触发POI为rowBreaks创建实例。 2、如何拷贝行 我在https://www.360docs.net/doc/1f12089979.html,的POI用户论坛翻遍了每个相关的帖子,找遍了api,也没看到一个拷贝行的方法,没办法,只能自己写: //注:this.fWorkbook是一个HSSHWorkbook,请自行在外部new public void copyRows (String pSourceSheetName, String pTargetSheetName, int pStartRow, int pEndRow, int pPosition) { HSSFRow sourceRow = null; HSSFRow targetRow = null; HSSFCell sourceCell = null; HSSFCell targetCell = null; HSSFSheet sourceSheet = null; HSSFSheet targetSheet = null; Region region = null; int cType; int i; short j; int targetRowFrom; int targetRowTo;

解决PHP+mysql处理中文乱码的独家方案

解决PHP+mysql处理中文乱码的独家方案 本方案适用于所有页面文件均为php(已成功测试过),如果有混合文件读者可以亲自测试。 问题现象如下图,1所示为修复过的头部引用文件header.php,中文能正常显示,2所示为未修复过的standard.php页面文件。 一、为了解决问题,首先应该设置数据库的字符编码,如下图所示,本例将所有编码设置为UTF-8。 同样将数据库中的所有表的字符编码设置成UTF-8。

这样,数据库中可以正常显示中文字符了,如下图所示。 如果要导入外来数据,也要设置好字符编码,对于非mysql数据库的导入(如从ACCESS数据库中导入),需要设置分隔字段的字符,然后执行便可,如下图所示。 ---------------------------------------- 二、数据库的字符编码完成后,便要将页面文件的编码设置好。 这里的要点有如下三点(红色为说明文字):

为了实现上述三点要求,本例采用的方案如下: 1.创建一个数据库连接文件conn.php ,其中在开头设置header 编码,并在创建数据连接后设置SQL 请求的编码,如下图所示: 2.设置页面文件的文件类型。可以在页面文件中的标签中设置字符编 码。 2.1如果之前的字符编码为gb2312,则该文件类型为ANSI (本例使用DW 和notepad++软件,读者也可用UE 编辑软件,只不过类型显示名称不一样而已),如下图所示: 2.2将标签的编码设置成utf-8并保存文件后,再次打开,会发现文件类型变成了ANSI as UTF-8,如下图所示:

mysql数据库乱码问题

数据库读出乱码解决 一、分析常见数据库问题 修改MYSQL数据库,数据表,字段的编码(解决JSP乱码) 要解决JSP乱码,首先就要了解JSP乱码的原因 1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的网页不一致,可能就会造成JSP页面乱码 2.在PHPMYADMIN或mysql-front等系统创建数据库时会让你选择一种编码,如果这种编码与你的网页不一致,也有可能造成JSP页面乱码 3.创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码 4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成JSP 页面乱码 5.用户提交JSP页面的编码与显示数据的JSP页面编码不一致,就肯定会造成JSP页面乱码. 如用户输入资料的JSP页面是big5码,显示用户输入的JSP页面却是gb2312,这种100%会造成JSP页面乱码 6.字符集不正确 要注意: 1.平时你在某些网站看到的文字可能有几种编码,如你看到一个繁体字,它有可能是big5编码,也有可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点. 如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法就是(1)将网站编码设为utf-8,这样可以兼容世界上所有字符,(2)如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK 7.JSP连接MYSQL数据库语句指定的编码不正确 8.JSP页面没有指定数据提交的编码,就会造成乱码: 所以,JSP乱码的原因无非就是以上几种,知道原因之后,要解决JSP乱码的方法也容易多了 我们一一来表达: 1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题 2.修改数据库编码,如果是数据库编码不正确:可以在phpmyadmin执行如下命令:ALTER DATABASE`test`DEFAULT CHARACTER SET utf8COLLATE utf8_bin 以上命令就是将test数据库的编码设为utf8

java读取和写入EXCEL文件

java读取和写入Excel文件 在Java中读取Excel文件的内容 在这里,我使用的是一个叫Java Excel API的东西,类似的还有jakarta的POI,不过感觉那个太复杂了点儿。而且jxl对中文的支持相当的好,至少我在用的过程中一点问题没出。 一、下载地址 [url]https://www.360docs.net/doc/1f12089979.html,/jexcelapi/[/url] 二、特性 可以读取Excel 95, 97, 2000文件 可以读或写Excel 97及其以后版本的的公式(不过我发现好像有bug) 生成Excel 97格式的电子表格 支持字体、数字和日期格式化 支持单元格的颜色和阴影 可以编辑现有的文件 三、读文件 //声明一下,记得后面要关闭哦。。 Workbook workbook = null; try { workbook = Workbook.getWorkbook(new File("d:\\temp\\TestRead.xls")); } catch (Exception e) { throw new Exception("file to import not found!"); } Sheet sheet = workbook.getSheet(0); Cell cell = null; int columnCount=3; int rowCount=sheet.getRows(); for (int i = 0; i

mysql+php中文乱码问题及mysql时间函数

mysql+php中文显示乱码的解决mysql+php中文显示乱码的解决 建议数据库用utf8编码 问题汇总: 1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码. 2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码. 3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码. 4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP 页面乱码. 5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码. 6.PHP页面字符集不正确. 7.PHP连接MYSQL数据库语句指定的编码不正确. 使用mysql+php产生乱码的原因都了解得很清楚了,那么解决就不困难

了. 针对不同问题的解决方法: 1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码. 修改数据库编码,如果是数据库编码不正确,可以在phpmyadmin 执行如下命令: ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是将test数据库的编码设为utf8. 2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码. 修改表的编码: ALTER TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是将一个表category的编码改为utf8. 3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码. 修改字段的编码: ALTER TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8

EXCEL打开乱码之解决方法

一、文档格式法 这种方法是将损坏的Word文档转换为另一种格式,然后再将其转换回Word文档格式。这是最简单和最彻底的文档恢复方法。 1.在Word中打开损坏的文档后,选择“文件→另存为”,在“保存类型”列表中,选择“RTF格式(*.rtf)”,然后单击“保存”按钮。 2.关闭损坏的文档,打开刚才保存的RTF格式文件,选择“文件→另存为”,在“保存类型”列表中,选择“Word文档(*.doc)”,然后单击“保存”按钮。 3.关闭RTF文档,打开修改后的Word文档。 Word文档与RTF的相互转换将保留其格式,如果这种转换没有纠正文件损坏,则可以尝试与其他字处理格式的相互转换,这将不同程度地保留Word文档的格式。如果使用这些格式均无法解决本问题,可将文档转换为纯文本格式(*.txt),再转换回Word格式。由于纯文本的简单性,这种方法有可能更正损坏处,但是Word文档的所有格式设置都将丢失。 二、重设格式法 Word用文档中的最后一个段落标记关联各种格式设置信息,特别是节与样式的格式设置。这样我们就可以将最后一个段落标记之外的所有内容复制到新文档,就有可能将损坏的内容留在原始文档中。步骤如下: 1.在Word中打开损坏的文档,选择“工具→选项”然后选择“编辑”选项卡,取消“使用智能段落选择范围”复选框前的勾。取消选中该复选框,选定整个段落时,Word将不会自动选定段落标记,然后单击“确定”按钮。 2.选定最后一个段落标记之外的所有内容,方法是:按“Ctrl+End”组合键,然后按 “Ctrl+Shift+Home”组合键。 3.在常用工具栏中,依次单击“复制”、“新建”和“粘贴”按钮

mysql中文乱码解决

转载:Mysql中文乱码的解决方法 第一种方法,很精辟的总结: 经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧: WINDOWS 下导入应该这样 使用MYSQL的命令 在DOS 命令下进入mysql的bin目录下,输入mysql -uroot -p密码数据库名称<要恢复的数据库, 例如我们要把D盘的一个名称为test.sql的数据库恢复到本地的test2这个数据库,那么就这样: mysql -uroot -p密码test2以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。 只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下: $mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass); mysql_query("SET NAMES 'GBK'"); 数据库字符集为utf-8 连接语句用这个 mysql_query("SET NAMES 'UTF8'"); mysql_query("SET CHARACTER SET UTF8"); mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");

poi读取excel并输出到jsp页面

代码来源于网络,只做了部分修改,我也是刚用到很多都不懂,找了一些例子之类的自己用,有些不错的分享给大家,仅供参考。 下面这个是用servlet做(注意web.xml );其实原理一样;源码如下 readExcelServlet.java package com.test.servlet; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import https://www.360docs.net/doc/1f12089979.html,ermodel.HSSFCell; import https://www.360docs.net/doc/1f12089979.html,ermodel.HSSFDateUtil; import https://www.360docs.net/doc/1f12089979.html,ermodel.HSSFRow; import https://www.360docs.net/doc/1f12089979.html,ermodel.HSSFSheet; import https://www.360docs.net/doc/1f12089979.html,ermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * author:wx * describe:Reads the Excel example * */ public class readExcelServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * * Constructor of the object. */ public readExcelServlet() { super(); } /** * Destruction of the servlet.
* */ public void destroy() { super.destroy(); }// Just puts "destroy" string in log // Put your code here /** * doGet */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Oracle数据库工具中文显示乱码问题的解决

Oracle数据库工具中文显示乱码问题的解决 Oracle客户端查询工具有时会有查处的结果为中文时不能正常显示,要么为乱码,要么为问号,plsql出现这种问题,以为是版本造成的,用了老的和最新的还是一样,换了另外的数据库工具也一样,但注意一点,数据其实是没有问题的,取出来显示是正常的中文,只是在工具里显示的是问号。其实问题的原理很简单,就是字符集设置不正确造成的,但如此简单的原理在解决的过程中却会遇到很多麻烦,下面结合我遇到和解决的过程,给朋友们一点思路,说不定你们跟我的问题一样,通过这篇文章不用再折腾了,很快搞定,感觉飘飘…… 首先讲讲字符集的知识,Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA.

ZHS16GBK。从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 如何查询Oracle的字符集,很多人都碰到过因为字符集不同而使数据导入失败的情况。这涉及三方面的字符集,一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。 查询oracle server端的字符集,有很多种方法可以查出oracle server 端的字符集,比较直观的查询方法是以下这种:SQL>select userenv(‘language’) from dual; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK 对于查询工具结果集中的中文乱码,其实有两种情况供参考: 1.安装了服务器及配套工具,这样还出现乱码就去检查注册表中的NLS_LANG项是否设置正确,很有可能是在安装时设置了不正确的字符集造成的; 2.只安装了客户端,没有配套工具(如sqlplus等),以10g为例,注册表中是没有NLS_LANG这项的,那么要改哪?同理,还是要改字符集,不过不是在注册表中设,是要在环境变量中增加或修改,即查看windows系统环境变量是否存在NLS_LANG,若存在则修改,

excel表格乱码

竭诚为您提供优质文档/双击可除 excel表格乱码 篇一:excel出现乱码的解决方法 excel出现乱码的原因也是多种多样。如果你遇到excel 打开是乱码,可以从下面找找相应的解决办法。第一,csV 文件用excel打开是乱码 从网页导出的csV文件,用excel打开,中文会是乱码。csV文件乱码问题主要是文件编码引起的。因此要解决excel 打开乱码的问题,可以从改文件开始: 首先,用记事本打开csV文件,可能看到很长的一条数据记录。 然后,直接把刚才打开的文件另存为txt文件,如果是utF-8的文件,你应该可以看到保存成的编辑格式。 最后,用excel直接打开这个另存的文件。应该能看到正确的汉字。 第二,excel文件损坏出现乱码 有时打开一个以前编辑好的excel工作簿,却出现乱码,无法继续进行编辑打印。这种情况的原因应该是该文件已经被损坏了,可以尝试使用下面的方法之一来修复excel乱码。

1.将excel乱码文件另存为sylk格式 如果excel乱码文件能打开,将excel乱码文件转换为sylk格式可以筛选出文档的损坏部分,然后再保存数据。 2.excel乱码文件转换为较早的版本 若因启动故障而没有保存excel乱码文件,则最后保存的版本可能不会被损坏。关闭打开的工作簿,当系统询问是否保存更改时,单击“否”。在“文件”菜单中,单击“打开”命令,双击该工作簿文件。 3.打开excel乱码文件并修复工作簿 如果excel乱码文件根本不能够使用常规方法打开,可以尝试excel20xx中的“打开并修复”功能,该功能可以检查并修复excel乱码文件中的错误。 单击“文件”——“打开”。通过“查找范围”框,定位并打开包含受损文档的文件夹,选择要恢复的文件。单击“打开”按钮旁边的箭头,然后单击“打开并修复”即可。 excel乱码问题也不是一篇能写尽的,因为出现的原因实在太多样。如果上面的方法依然无效,可以借助第三方软件来尝试解决excel乱码。 officeexcelViewer是微软官方出品的一款excel乱码清除修复工具,下载安(excel表格乱码)装完毕,用officeexcelViewer打开有乱码的excel文档,然后复制单元格,并将它们粘贴到excel的一个新工作簿中。出现excel

poi读写excel案例

Java-Excel 报表开发 POI (2009-02-19 21:44:10) 转载▼ 分类:java 标签: java 杂谈 开发环境为windowsXP-SP2,Eclipse3.2,JDK1.5.07,其实差不多都行,不会有太大的差异。本文从POI 下载开始讲解,前提是开发环境包括系统变量等等已经正确设置完毕。 1.POI的下载 截至本文发表,POI最新版本是3.0.1,距离上一个Final版本有3年了吧,以至于我差点儿就把他放弃了——以为没人管了。官方的公告讲,这一版主要是追加了一些新的特性和BUG修正,不过稍微有点儿遗憾的是,还不能很好的操作Excel2007。 POI官方网址: https://www.360docs.net/doc/1f12089979.html,/ JAR包下载: https://www.360docs.net/doc/1f12089979.html,/poi/release/bin/poi-bin-3.0.1-FINAL-20070705.zip 源码下载: https://www.360docs.net/doc/1f12089979.html,/poi/release/src/poi-src-3.0.1-FINAL-20070705.zip 下载上面的JAR和源码(源码不是必须的,但是为了早日修得正果,深入系统的看看POI代码还是有必要的)并解压待用。 2.用Eclipse搭建项目 打开Eclipse 依次点击File->New->Java Project 输入项目名称,本例中设置为POI 单击完成 在项目上点击右键->New->Folder 输入文件夹名称lib 把刚才解压的poi-3.0.1-FINAL-20070705.jar复制过来 右键点击项目,选择Properties 在左侧列表里选中Java Build Path,右侧选中Libraries 点击Add JARs,选择POI项目的lib下的所有文件 两次OK确认,回到Eclipse界面 小技巧,快捷操作:可以用鼠标左键选中poi-3.0.1-FINAL-20070705.jar但不松开,拖到任务栏的Eclipse 图标上等候1秒左右,Eclipse会自动弹起来,依然不松开移动到lib文件夹上,这个时候鼠标后面跟个十

SQLSERVER访问MYSQL表中文显示成乱码

错误描述:SQLSERVER访问MYSQL表中文显示成乱码,中文会显示成???? 解决思路:用的是mysql-5.1.50-win32 与odbc3.1版本的.现在改成ODBC5·1 这样转换就没有问题SQLSERVER连接MYSQL 建立链接如下: 数据库软件与ODBC软件:mysql-5.1.50-win32与ODBC5·1(注意,odbc3.1版本,会出现乱码)MYSQL数据库情况:gmp_test 第一步:先要在MYSQL进行授权,让主机能访问MYSQL数据库,设置如下: 在mysql数据库执行,语句: GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.216' IDENTIFIED BY 'yxtech' WITH GRANT OPTION; 第二步:在SQLSERVER主机,设置ODBC连接,设置如下图: 第三步:在SQL SERVER 配置连接,配置语句如下 --删除连接 exec sp_dropserver'dxmysql','droplogins' --建立一个新连接 EXEC SP_ADDLINKEDSERVER @server ='dxmysql', --连接名称(随意,规范就可)

@srvproduct ='MYSQL', --连接MYSQL,数据库类型,固定的 @provider ='MSDASQL', --连接MYSQL的编码,固定的 @datasrc ='my_sql' --建立的ODBC连接(第二步建立的) --建立用户连接 EXEC sp_addlinkedsrvlogin'dxmysql','false','bi_etl','root','yxtech' --'dxmysql'为连接名称 --'bi_etl'为SQLSERVER用户,如果为NULL --'root','yxtech' 为登录MYSQL 的用户及密码 --进行查询 select*FROM OPENQUERY(dxmysql,'select * from test1')

在Java中读写Excel文件

在Java中读写Excel文件 Jakarta的POI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径:HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell,分别代表了Excel电子表格中的Book、Sheet、行和单元格。 你可以在下面地址下载到最新的POI工具包: https://www.360docs.net/doc/1f12089979.html,/poi/index.html 下面的代码创建一个Excel文件test.xls,并在第一行的第一格中写入一条消息: 1.import https://www.360docs.net/doc/1f12089979.html,ermodel.*; 2.import java.io.FileOutputStream; 3. 4.// code run against the jakarta-poi-1. 5.0-FINAL-2002050 6.jar. 5.public class PoiTest { 6. 7.static public void main(String[] args) throws Exception { 8.FileOutputStream fos = new FileOutputStream("d:\test.xls"); 9. HSSFWorkbook wb = new HSSFWorkbook(); 10. HSSFSheet s = wb.createSheet(); 11. wb.setSheetName(0, "first sheet"); 12. HSSFRow row = s.createRow(0); 13.HSSFCell cell = row.createCell(0); 14.cell.setCellValue("Hello! This message is generated from POI."); 15. wb.write(fos); 16. fos.close(); 17. } 18. 19.} 读取Excel文件时,首先生存一个POIFSFileSystem对象,由POIFSFileSystem 对象构造一个HSSFWorkbook,该HSSFWorkbook对象就代表了Excel文档。下面代码读取上面生成的Excel文件写入的消息字串: 1. POIFSFileSystem fs = null; 2. HSSFWorkbook wb = null; 3.

Java读写Excel之POI入门

Java读写Excel之POI入门 Apache POI 是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。 如果处理.xlsx、docx、pptx的话可以试试Docx4j 。 ?HSSF -提供读写Microsoft Excel XLS格式档案的功能。 ?XSSF -提供读写Microsoft Excel OOXML XLSX格式档案的功能。 ?HWPF -提供读写Microsoft Word DOC格式档案的功能。 ?HSLF -提供读写Microsoft PowerPoint格式档案的功能。 ?HDGF -提供读Microsoft Visio格式档案的功能。 ?HPBF -提供读Microsoft Publisher格式档案的功能。 ?HSMF -提供读Microsoft Outlook格式档案的功能。 版本:poi-3.8-20120326.jar 1、生成Workbook Java代码

2、生成Workbook OOXML形式(.xlsx) Java代码 3、打开Workbook Java代码

如何解决MYSQL数据库中文乱码问题-

如何解决MYSQL数据库中文乱码问题? 问题:如何解决MYSQL数据库中文乱码问题? 回答: 在数据库安的时候指定字符集 如果在安完了以后可以更改以下文件: C: Program Files MySQL MySQL Server 5.0 my.ini 里的所有的default-character-set=gbk C: Program Files MySQL MySQL Server 5.0 data depot_development db.opt default-character-set=gbk default-collation=gbk_chinese_ci 建立数据库时候:指定字符集类型 CREATE DATABASE haichen CHARACTER SET gbk COLLATE gbk_chinese_ci 2.建表的时候也指定字符集 CREATE TABLE student ( ID varchar(40) NOT NULL default , UserID varchar(40) NOT NULL default , ) ENGINE=InnoDB DEFAULT CHARSET=gbk; -

1。创建数据库的时候:CREATE DATABASE `database` CHARACTER SET utf8 COLLATE utf8_general_ci 2.建表的时候CREATE TABLE `database_user` ( `ID` varchar(40) NOT NULL default , `UserID` varchar(40) NOT NULL default , ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 3.设置URL的时候jdbc:mysql://localhost:3306/database useUnicode=true characterEncoding=UTF-8

相关文档
最新文档