请教高手,一个是中文字符的显示问题,一个是图片存取数据库的问题(50分)

  • 主题发起人 主题发起人 touip
  • 开始时间 开始时间
T

touip

Unregistered / Unconfirmed
GUEST, unregistred user!
win2000, jbuilder6
1、当我post一个含中文字符的数据时,显示乱码,如何解决?
2、如何把图片存入数据库中的blob字段,以及如何把blob字段显示在网页上?
 
收缩以下这个论坛,可以找到很多!
 
to dcsdc:
没找到合适的,有些类似但没有解决
 
var
FS: TFileStream;
begin
if not (Query1.State in [dsInsert, dsEdit]) then
Query1.Insert;
FS := TFileStream.Create('c:/Windows/Winlogo.bmp', fmOpenRead);
try
Query1Images.LoadFromStream(FS);
finally
FS.Free;
end;
Query1.Post;
end;
 
to TYZhang:
delphi的我会,我说的是如何用java来写,不知道你请不清楚
 
如何把blob字段显示在网页上,如果我把blob字段读成流,在jsp中用<img src=<%=输出流%>>
时,会直接调用toString()方法,那应该用什么方法来输出blob了?
 
为什么没人回答,我记得看过一篇报道,说中国人很喜欢开放源码,但是只是限于他人的而已,
就拿linux来说,我就没看见过中国的源码版本,我不相信没人遇到这两个问题,知道而不说,
是不是就是大虾,或者说就是所谓的大富翁里的大虾,如果嫌分少,说下,我还有点分。
 
1、当我post一个含中文字符的数据时,显示乱码,如何解决?
-》post?是指Web开发吗?和数据库有关吗?最好把问题描述清楚一点,适当时可贴出部分原代码。
2、如何把图片存入数据库中的blob字段,以及如何把blob字段显示在网页上?
-》可用servelt实现,我没实践过。详见http://www-900.ibm.com/developerWorks/java/l-imgtxt/index.shtml
建议:最好少一些这样的大帽子,好吗?不要上升到中国人,OK?我觉得这个论坛的氛围还不错。
 
to papa:
1、<form method=post name=form>
<table border="0" width="100%">
<tr>
<td>姓名</td>
<td><input size=20 name="name"></td>
<td><input type=submit value="查询语句"></td>
</tr>
</table>
</form>
比方说我要得到request.getParameter("name")的值,开始为null,如果不输入,为?
(我用request.getParameter("name")!="",结果为true),如果我输入中文,则得到的是
乱码?
2、我是否只能把流存为服务器上的文件,然后<img src=生成的文件>,???
 
使用TBlodStream和TMemoryStream的方法保存图片,但是在SQL Server 7.0下只能保存以下
的图片而在SQL Server 2000中可以是几百K。
 
2、我是否只能把流存为服务器上的文件,然后<img src=生成的文件>,???
-》不是,如果是那样存到数据库有什么意义呢?
你没有看我给的链接吗?我觉得那篇文章写得非常的详细,从原理到例子,还有DEMO。我不可能比他解释得更清楚了。
并且还是中文的。
转载他的一段话:
在HMTL中显示一张图片很简单:<img src="bg.jpg" weight="153" height="25">。
另外我们还知道src属性中的文件类型并没有做限定,也就是说<img src="image.jsp">的写法也是合法的,同样引用Servlet:<img src="/imageServlet">的写法也是合法的,浏览器解析到该语句时,将向目标服务器发送一个HTTP请求 。通过了解HTTP协议,可以知道,如果这时imageServlet做出Content-Type为image/jpeg的正确响应(可以通过设置contentType="images/jpeg"来实现),那么也将正确显示一张图片。这个原理也是实现将数据库中的图像数据显示到网页上所用的原理。
进一步利用这个原理,当向imageServlet请求图像时,imageServlet不是简单的发送原图像数据,而是先对原图像数据进行一定的处理,比如在原图片上面的指定位置加上文字,甚至对再做一些处理比如阴影、立体等,然后再将处理后的图像数据流发送出去,那么不就可以得到图文结合后的图像了吗?
根据以上分析,我们得到这样的实现方法:在<img>的src属性中调用实现上述功能的Servlet并传递相关的参数,如背景图片路径、输出文字、文字输出的位置、字体、大小等,由该Servlet进行图文处理,并返回处理后的图像数据,从而在网页上显示出加上文字的图像。
 
1、不知道你的服务器用的是什么?我用的tomcat,在一开始先
request.setCharacterEncoding("GB2312");
就正常了,可是有人说在别的下面无效
 
2、保存:
用 PreparedStatement.setBinaryStream 绑定一个流
 
2、显示
网页上: <img src=你的jsp或者serverlet>
你的jsp或者serverlet:
response.getOutputStream 得到一个stream,往里面写你的image数据就可以了
 
papa分析的不错。
 
后退
顶部