Java生成图片中文成了乱码。

这个图片生成方法是网上搜的,自己加了点东西.英文还好,中文就成了乱码,我电脑是英文版本的.想问下有没什么解决方法不用花太多时间的.另外,这个生成方法生成后图片有点模糊,想... 这个图片生成方法是网上搜的,自己加了点东西.
英文还好,中文就成了乱码,我电脑是英文版本的. 想问下有没什么解决方法不用花太多时间的.
另外,这个生成方法生成后图片有点模糊,想问下有没有其他方法?如果附上代码感激不尽.
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import java.awt.font.*;
import java.awt.geom.*;

public class ImgTest
{
static String line[] = new String [999];
public static void ReadFile () throws Exception
{
BufferedReader txtRead = new BufferedReader (new FileReader ("test.txt"));
int count = 0;
line [count] = txtRead.readLine ();
while (line [count] != null)
{
count++;
line [count] = txtRead.readLine ();
}
}

public static void main (String[] args) throws Exception
{
ReadFile ();
//System.out.println (line [0]);
WriteImage (line [0]);
}

public static void WriteImage (String s) throws Exception
{
File file = new File ("C:\\Documents and Settings\\Owner\\Desktop\\ImgTest.jpg");
Font font = new Font ("Serif", Font.BOLD, 10);

int width = 100;
int height = 100;
BufferedImage bi = new BufferedImage (width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) bi.getGraphics ();
g2.setBackground (Color.WHITE);
g2.clearRect (0, 0, width, height);
g2.setPaint (Color.RED);
FontRenderContext context = g2.getFontRenderContext ();
Rectangle2D bounds = font.getStringBounds (s, context);
double x = (width - bounds.getWidth ()) / 2;
double y = (height - bounds.getHeight ()) / 2;
double ascent = -bounds.getY ();
double baseY = y + ascent;

g2.drawString (s, (int) x, (int) baseY);

ImageIO.write (bi, "jpg", file);
}
}
展开
 我来答
百度网友5ca104357
2010-08-15 · TA获得超过2595个赞
知道小有建树答主
回答量:874
采纳率:100%
帮助的人:1373万
展开全部
BufferedReader txtRead = new BufferedReader (new FileReader ("test.txt"));
读取tests.txt的时候就是乱码。

解决方法:

把上面那句改成这样就ok了

BufferedReader txtRead=new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"),"gbk"));

参考资料: 还有其他问题的话,给我发百度消息

sise密码王
2010-08-15 · TA获得超过1604个赞
知道小有建树答主
回答量:352
采纳率:100%
帮助的人:230万
展开全部
你使用的输入输出流错了,使用BufferedReader读取的时候经常会出现中文乱码,你可以试试用管道来处理,可以再加多一个OutputStream
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pensiero
2010-08-15 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6921
采纳率:83%
帮助的人:1258万
展开全部
多半是因为你的操作系统是英文版引起的,你把代码拿到中文系统上试试。 英文系统中用的编码是cp什么来着,在java中默认会取系统编码来处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式