有时我们需要程序动态生成jsp文件,采取系统默认的编码操作的文件出来的结果往往不是我们想要的,原因是中文显示总是是乱码。
读取
import
java.io.BufferedReader;
import
java.io.FileInputStream;
import
java.io.InputStreamReader;
String FileContent
=
""
;
//
文件很长的话建议使用StringBuffer
try
{
FileInputStream fis
=
new
FileInputStream(
"
d:\\input.txt
"
);
InputStreamReader isr
=
new
InputStreamReader(fis,
"
UTF-8
"
);
BufferedReader br
=
new
BufferedReader(isr);
String line
=
null
;
while
((line
=
br.readLine())
!=
null
) {
FileContent
+=
line;
FileContent
+=
"\r\n
"
;
//
补上换行符
}
}
catch
(Exception e) {
e.printStackTrace();
}
写入
import
java.io.FileOutputStream;
import
java.io.OutputStreamWriter;
String FileContent
=
"
文件内容
"
;
try
{
FileOutputStream fos
=
new
FileOutputStream(
"
d:\\output.txt
"
);
OutputStreamWriter osw
=
new
OutputStreamWriter(fos,
"
UTF-8
"
);
osw.write(FileContent);
osw.flush();
}
catch
(Exception e) {
e.printStackTrace();
}
读写文件是最常用的操作之一,每次将相应的代码片段复制过来不仅麻烦,还会影响整体的美观。为此我单独写了一个文件操作的类,需要时先把这个类的代码粘过去,再调用就方便多了。
import
java.io.BufferedReader;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.InputStreamReader;
import
java.io.OutputStreamWriter;
public
class
FileManager {
public
static
String read(String fileName, String encoding) {
StringBuffer fileContent
=
new
StringBuffer();
try
{
FileInputStream fis
=
new
FileInputStream(fileName);
InputStreamReader isr
=
new
InputStreamReader(fis, encoding);
BufferedReader br
=
new
BufferedReader(isr);
String line
=
null
;
while
((line
=
br.readLine())
!=
null
) {
fileContent.append(line);
fileContent.append(System.getProperty(
"
line.separator
"
));
}
}
catch
(Exception e) {
e.printStackTrace();
}
return
fileContent.toString();
}
public
static
void
write(String fileContent, String fileName, String encoding) {
try
{
FileOutputStream fos
=
new
FileOutputStream(fileName);
OutputStreamWriter osw
=
new
OutputStreamWriter(fos, encoding);
osw.write(fileContent);
osw.flush();
}
catch
(Exception e) {
e.printStackTrace();
}
}
}
调用示例:
写入 FileManager.write("Hello, World!", "D:\\test.txt", "UTF-8");
读取 System.out.println(FileManager.read("D:\\test.txt", "UTF-8"));
分享到:
相关推荐
1. **数据库连接方式**:数据库的连接参数应指定正确的字符编码,如使用 `useUnicode=true&characterEncoding=UTF-8` 来确保数据传输时的编码一致性。 2. **网页编码**:网页的HTML文件应声明正确的字符编码,例如...
在Java JSP开发中,遇到UTF-8编码导致的乱码问题是一个常见的困扰。这个问题主要涉及到字符编码的统一和正确处理。UTF-8是一种广泛使用的Unicode字符编码方案,它可以支持几乎所有的字符集,包括中文、日文和韩文。...
如果要转换整个文件的编码,可以使用`java.io`或`java.nio.file`包中的类来读取UTF-8编码的文件,转换后写入ASCII编码的文件。 总结来说,"快速转码(UTF-8转ASCII)"是一个常见的编程需求,尤其在Java Web开发中。...
本文将详细介绍如何使用Java进行XML文件的读取和写入,特别是在处理UTF-8编码时需要注意的事项。 首先,要处理XML文件,我们需要引入Java的标准库`javax.xml.parsers`和`org.w3c.dom`。这些库提供了DOM(Document ...
在"xml.rar_UTF XML_UTF-8编码_utf_utf-8_xml utf-8"这个压缩包中,我们主要探讨的是与XML文档相关的编码问题,特别是UTF-8编码。 UTF-8是一种广泛使用的Unicode字符编码方案。它能够表示Unicode标准中的所有字符,...
标题提到的“批量将Java源代码文件的编码从GBK转为UTF-8”是一个常见的需求,因为GBK编码是中国大陆广泛使用的编码方式,但它并不兼容Unicode,而UTF-8编码则是一种更通用的Unicode实现,能兼容多种语言字符。...
这个程序需要遍历指定的GBK编码文件夹,读取每个文件的内容并将其转换为UTF-8编码,同时,对于文件名也要进行相应的编码转换。 在Java中,我们可以使用`java.nio.file`包中的`Files`类和`StandardCharsets`类来实现...
3. 文件操作:`FileReader`和`FileWriter`默认使用平台默认编码,但在跨平台项目中,应显式指定UTF-8编码,如`new FileWriter(file, "UTF-8")`。 4. 网络通信:在发送HTTP请求或处理响应时,HTTP头中的`Content-...
java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel
delphi7调用delphi2009生成的dll文件会出现乱码问题。是unicode的原因 终于找到了UTF-8、Unicode格式转换函数
2. **编写转换脚本**:对于熟悉编程的人来说,可以编写Python、Java、Perl等语言的脚本来批量读取GBK编码的文件,然后用UTF-8重新写入。Python的`codecs`库提供了方便的读写功能,如`codecs.open()`。 3. **使用...
标题"Python-convert2utf将目录下的全部源文件转成UTF8编码"指的是使用Python编写的一个脚本或工具,该工具能够遍历指定目录,检测并转换其中的GB、GBK以及其他非UTF-8编码的文本文件和源代码文件,统一转换为UTF-8...
相反,当你向服务器发送请求或者保存文件时,可能需要将字符串编码为UTF-8格式。 了解这些基本概念后,我们来看提供的压缩包文件"UTF8"。这个文件可能包含一些示例代码或教程,演示了如何在具体编程环境中进行UTF-8...
3. **文件读写**:在读取或写入包含UTF-8编码的文本文件时,需要正确设置文件编码,避免乱码问题。 4. **国际化与本地化**:如果Carmela涉及多语言支持,可能会用到PHP的`gettext`或`intl`扩展,以实现动态切换语言...
综上所述,处理Struts中的中文预处理成UTF-8编码是一个涉及多个层面的过程,包括请求处理器、响应设置、配置文件调整以及客户端设置。通过细致的配置和编码设置,我们可以确保中文字符在Struts应用中得到准确无误的...
这样,在读取文件时,Java 就会使用 UTF-8 编码来解析文件内容,从而避免中文乱码。 写入文件避免中文乱码 在写入文件时,也需要使用正确的编码方式来保存文件内容。Java 提供了多种方式来写入文件,例如使用 `...
在Java中,字符串是以UTF-16编码存储的,但读写文件或网络通信时,通常会转换成UTF-8。`java.nio.charset.Charset`类提供了对各种字符编码的支持,包括UTF-8。使用`new String(byte[], "UTF-8")`或`String.getBytes...
如果CSV文件是以UTF-8编码的,但Java程序在读取时假设它是GBK或其他编码,就会导致乱码。反之亦然。 解决Java读取CSV文件中文乱码问题的步骤如下: 1. **指定字符编码**:在使用`BufferedReader`或者`FileReader`...
1. **使用统一的编码标准**:在整个项目中,确保所有文件、数据库、网络通信都采用统一的编码,如UTF-8,以避免编码不一致带来的问题。 2. **指定字符编码**:在读写文件、数据库操作、网络通信等涉及字符串处理的...