ISAPI,如何显示中文内容(50分)

  • 主题发起人 主题发起人 Jao
  • 开始时间 开始时间
J

Jao

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi写了一个与数据库交互的程序,可是发现当输入中文后显示出
的都是乱码。在BDE中我已设置了中文支持,不知道还要对哪些地方进行改
进。请各位请教。
BTW,还有一个无奈的问题,在网页上的Memo中输入一堆东西,再显示出来
的时候,所有的文字都连在一起,没有断行。如果用pre命令真实再现的话
整个页面的边界就会无限扩大下去。大富翁也写着“请注意换行”,
是不是也因为这个问题(斑竹笑了)。
请各位明示,谢谢。
 
你用的是什么数据库, 如果是Paradox不要设置中文支持.

网页的Form里面输入的时候是有自动换行功能的, ISAPI输出的HTML如果用Pre标记的
时候是不具备自动换行的; 如果用P标记可以自动换行, 但是用户输入的格式就失去了.
你可以在你的程序中检查Memo字段的每一行的长度, 如果大于某个长度就在适当的位置
断开. 对于英文要在空格处断开, 对于汉字要避免在一个汉字中间断开.
 
我用的dBase数据库,为什么用Paradox就不需要设置中文支持呢?

我是觉得问题好象出在POST的过程中,因为从页面上传到数据库的时候,中文已
经变成乱码了,而且在数据库里显示的MEMO字段是有断行的,可在页面显示时断
行就不见了。
我想可能是因为在Delphi中断行是以#13#10来表示,而网页的断行是以P或BR标
记来表示,Delphi在把数据转换为网页时没有对这些特殊地方进行处理。至于为
什么中文上传时就变成了乱码,我就有点想不通了。
 
用Paradox是, BDE使用你的系统默认的Code Page.

是否Post过来的消息就是乱码, 可以在你的ISAPI的Action中加上
showmessage(Request.Content)显示出来. 如果确实是乱码, 试着在表单页上将
CharSet属性设置成gb2312. 如果还不行, 检查你的浏览器默认字体设置.
 
To huizhang
能讲得详细些吗?上传的东西的确是乱码,而我又找不到CharSet属性在哪儿.
谢谢!
 
那个CharSet是需要你写到你的动态网页的head段中去的
《meta http-equiv="Content-Type" content="text/html;charset=gb2312"〉
 
在HTML中没有自动回车换行,而用<P>
<PRE>就可以预格式化文本,显示时,在<PRE></PRE>之间的
文本就保持了回车换行.
其实,存在数据库中的MEMO字段的文字,不论你是否用<PRE>
都是已经具有格式化的,自己编程来识别MEMO行宽和回车也应该
是可以.
 
蓝鸟的话我不明白!
 
我用dbase和Paradox都作过的,没有出现过你所说的乱码的问题。
至于换行的问题是这样的:
html里的换行是用<br>或<p>来实现的,在处理你传过来的文字的时候一看没有
<br>或<p>就只管输出。我作的时候是用<pre>来输出,这样可以保持格式。
补充:汉字无法自动换行,英文则可以自动换行
 
对不起,我写的html标记都不现出来,以前没这么用过,不好意思,呵呵
 
多人接受答案了。
 
后退
顶部