"alt"和"title"属性的使用(转帖两篇)

<TITLE><ALT>里面如何换行(来自http://www.aspx.cn/html/web/DreamWeaver/589/42989.html)

--------------------------------------------------------------------------------

 

<a href="#" title="《杀手无罪》

类型:电影

产地:美国

片长:单本剧

主演:妮芙·坎贝尔 唐纳德·萨瑟兰 威廉·梅西 约翰·瑞特尔特蕾茜·乌尔曼" border="0">鼠标放上去看说明</a>

 

“title”的使用:来自http://www.w3.org/TR/html4/struct/global.html#h-7.4.3

7.4.3 The title attribute

Attribute definitions

title = text [CS]

This attribute offers advisory information about the element for which it is set.

Unlike the TITLE element, which provides information about an entire document and may only appear once, the title attribute may annotate any number of elements. Please consult an element's definition to verify that it supports this attribute.

Values of the title attribute may be rendered by user agents in a variety of ways. For instance, visual browsers frequently display the title as a "tool tip" (a short message that appears when the pointing device pauses over an object). Audio user agents may speak the title information in a similar context. For example, setting the attribute on a link allows user agents (visual and non-visual) to tell users about the nature of the linked resource:

...some text...

Here's a photo of

<A href="http://someplace.com/neatstuff.gif" title="Me scuba diving">

   me scuba diving last summer

</A>

...some more text...

The title attribute has an additional role when used with the LINK element to designate an external style sheet. Please consult the section on links and style sheets for details.

Note. To improve the quality of speech synthesis for cases handled poorly by standard techniques, future versions of HTML may include an attribute for encoding phonemic and prosodic information.

7.4.4 Meta data

(转帖)Jive的中文问题及解决办法及关联转帖

 首页 » 研究文集 » Jive 研究   搜索标题相关文章      发表评论     开始监控     加入收藏夹 

Jive的中文问题及解决办法

bruce 原创  (参与分:520452,专家分:6410)   发表:2002-08-31 12:52   阅读:12622次 

 

说明:本文没有特别指出的地方的环境配置均为:

Windows XP + Tomcat 3.3a + mysql 3.23.51-nt + mysql-connector-java-2.0.14-bin.jar

Jive中产出乱码的原因是多方面的,包括操作系统、Web服务器(比如Tomcat)、Jive的设置、数据库(链接)的编码方式、页面的编码等多个环节,任何一个环节出现编码问题,都会导致你的最终页面出现乱码。相应的解决问题也需要分多步进行。比如,你创建一个论坛,然后页面显示是乱码,你可以根据如下顺序定位问题:

1. 查看数据库中的记录是否是乱码。如果是,再试着修改数据库的链接的编码方式;如果仍然乱码,说明在向后台传送数据前就发生了编码问题,可以查看页面的编码方式、或者在提交前进行如下编码转换:

String new = new String(old.getBytes(“8859_1”), “GB2312”);

2. 如果数据库中正常显示中文,那么说明是页面显示的问题。

在上述每一步,你总是可以使用log语句及时输出,追踪乱码发生的位置。

下面是一些常见的问题,和解决办法。

1. 问:创建论坛或发贴时,输入的中文名显示乱码,查看数据库中,也为乱码。

解决办法:停止Tomcat,修改{JIVE}\WEB-INF\jiveHome\jive_config.xml(在jive.database.defaultProvider节点中):

<serverURL>jdbc:mysql://localhost/jive</serverURL>

为:

<serverURL>jdbc:mysql://localhost/jive?useUnicode=true&characterEncoding=gb2312</serverURL>

注意useUnicode=true与characterEncoding=gb2312之间不要直接使用“&”,需要使用XML转意字符:&加上amp;

2. 问:搜索中文时,search.jsp的输入框中的文字变成了“???”,导致不能搜索出任何结果。

解决办法:将search.jsp页面中的所有的:

/search.jsp...q=<%=(queryText!=null)?queryText:"")%>

修改为:

/search.jsp?...q=<%= (queryText!=null)?java.net.URLEncoder.encode(queryText,"GB2312"):""%>

你还可以参加cherami的一篇文章:

Tomcat下的JIVE2的中文问题的报告

本文会不断完善,欢迎大家把自己解决Jive乱码的经验回复在文后,我会把最新的一些内容及时补充近来,一起来完善本文。给更多的朋友提供方便,先谢谢大家!

 

 

 TOMCAT下的JIVE2的中文问题的报告

 首页 » 研究文集 » Jive 研究   搜索标题相关文章      发表评论 

TOMCAT下的JIVE2的中文问题的报告

cherami 翻译  (参与分:700911,专家分:21389)   发表:2002-05-26 15:44   更新:2002-11-10 18:24   版本:1.0   阅读:7675次 

 

原文摘自jive论坛用户shyguy的帖子。

翻译者:cherami

XXX 注意 XXX:

所有的结论都是基于一下平台:

Winnt4.0(简体中文版) + Sun JDK1.3 + Tomcat4.0-b7 + jive2.0.1 + mysql3.23.38 + org.gjt.mm.mysql.Driver-2.04

在这样的条件下,安装在TOMCAT下的Jive2.0不能像其他JSP应用那样不做任何修改就可以正确的显示中文。我不敢确定但是几个测试的结果告诉我tomcat核心的编码总是8859_1,无论是否在双字节的操作系统下。当客户端输入一些中文,request.getParameter()请求返回的字符串是8859_1,因此如果你使用System.out.println()将输入打印到控制台,它看上去就像"??x?"。如果你在每个JSP文件的开始加上 <%@ page contentType="text/html;charSet=gb2312" %> 标签,中文就可以正确显示,因为tomcat知道它的内核编码是8859_1而输出到客户端的PrintWriter(它是JSP的输出对象)的编码是gb2312,因此PrintWriter在内部做了令人愤怒的8859_1到gb2312的转换。这就是为什么我们总是添加contentType解决中文问题的原因。

但是不幸的是,当我们通过JDBC从数据库提取字符串的时候事情就不一样了。

看看下面的虚拟的代码: str=rec.getString(field); 你能告诉我字符串str的编码吗?

答案是: gb2312!!!

(就像mysql jdbc驱动一样,很多包都根据平台返回字符串的编码,例如 SimpleDateFormat 和 JavaMail。)因此,当你将字符串传递到PrintWrite时,愚蠢的PrintWriter将再次使用8859_1-->gb2312的转换。可怜的客户端别无选择的看到丑陋的????。

令我困惑的是:

request.getParameter()的返回字符串的编码是8859_1,因此向控制台打印时它看上去像??x?,但是Jive可以将字符串用gb2312编码存入数据库!!!

例如,在post.jsp里面,在消息创建发生以前,我将中文主题和内容输出到控制台,它看上去是??x?,但是在mysql数据库里面,SELECT * FROM jiveMessage将返回正确的中文!

同时我也发现response.setLocale()对中文输出没有作用。

如何解决呢:

1. 在输出前使用String.getBytes()反向转换gb2312字符串,这是最愚蠢的方法。

2. 在英文平台下运行服务器。

3. 最最最最好的方法是: 使用其他的 java服务器!

对于TOMCAT用户的建议是:

如果你确实想在一个双字节的操作系统(例如简体中文版的Winnt)上运行TOMCAT,你最好: (1)添加<%@ page contentType="text/html;charSet=gb2312"%>到 \include\brankding\style.jsp 和 \admin\include\global.jsp的第一行(路径是相对TOMCAT的主目录)

(2)反向转换从数据库返回的所有字符串为8859_1编码。这需要修改JIVE核心的所有DBxxxx类,

或者修改JDBC驱动的"result.getString()"进行反向转换,

或者修改TOMCAT内核中的"out"对象进行反向转换。

(3)如果你修改了tomcat内核中的"out对象,在将中文信息传递到jive/index.jsp时你最好使用URLEncode(/dir/URL.jsp?gb2312_msg)。

附:Rexip AppServer 有Record-Breaking Benchmark Results处理Java应用的服务器端中文问题。

版权声明  本篇文章对您是否有帮助?  投票: 是    否     投票结果:     6       3

 

 

 

作者其它文章:

使用Checklist提升项目的质量

提升项目组的开发效率

使用JkUnMount

Apache2.0运行模型分析及性能调整

优化Apache 2.0 性能

作者全部文章     查看作者的Blog 

 

 

  评论人:scorpio_leon    参与分: 365    专家分: 55    来自: 上海

 发表时间: 2002-08-13 17:16 

还有一个解决方案

在不进数据库,需要中文参数的页面使用filter,不要忘记了,filter是可以配置的:)

有既需要进数据库,又需要其他中文参数传递的页面呢?

一般不会有吧,有的就举个例子讨论看?

 

 

  评论人:shyguy    参与分: 23055    专家分: 330    来自: 西湖

 发表时间: 2002-09-18 12:10 

嘿嘿,老了。很久以前的事情了,有些观点甚至是错误的。

对不起了。 

 

这个文章共有 2 条评论,共 1 页 

 

 

 

 

 

改变学习日记登录方式余下的步骤

之前,已经把登录模式作了初步的改变。下面,计划一下后面的工作。

1、把重设密码纳入登录模式的改变中:

  1)、参考学习其他的程序的取回密码功能,决定运作方式;已完成,准备用jive3的方式;

  2)、设计用户取回密码的流程,尝试用ArgoUML0.20.alpha2进行建模,一方面可以完成设计,二方面可以验证argouml建模的可行性,取得大家的共识,还可以把这个模型提交给朋友们,请他们提意见和建议;

  3)、实现重设密码;

2、增加用户保存密码的功能,下一次登录可以不用输入密码;见http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=558&goalID=558&naviStr=a10ac0ad0改善系统的登录方式

和“用cookie保存用户密码登录流程http://www.learndiary.com/disDiaryContentAction.do?goalID=73”

3、实现1需要补充下面的知识:

  1)MD5加密,用于用户密码的加密(包括数据库中的和用户cookie中的);

  2)java中时间触发的使用Timer,用于重设密码失误期限的检测;

4、另外,是否考虑把邮件发送单独做成一个功能,在程序要发送各种邮件时都可以使用,例如,我在考虑是否单独增加对注册用户邮件的群发功能,或者把公告作为用户的默认订阅邮件。jive3的做法好像就是这样的。我前面作过这样的思考:

应该加入给注册用户发系统公告的功能

http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=1250&goalID=1250&naviStr=a10ac0ad0

    

学习jive的取回密码流程

  在这个问题走偏了。下了一个jivejdon2.5,却搞不定里面的中文化问题,本来里面没有取回密码的功能,可我还是尝试解决这个中文化问题。里面用的是is088591编码,在管理页面设置本地化和创建中文论坛,发中文帖子不行。问题暂时记在这里。先把既定的目标完成。我的环境是:Window2000+tomcat5+mysql4

  在jive3中有取回密码的功能,初步用导入导出sql文件在ultraedit比较的方法找到它存取回密码userID和Token的字段存在在表jiveuserprop中:

CREATE TABLE `jiveuserprop` (

  `userID` bigint(20) NOT NULL default '0',

  `name` varchar(100) NOT NULL default '',

  `propValue` text NOT NULL,

  PRIMARY KEY  (`userID`,`name`)

) TYPE=MyISAM;

数据:INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (2,'jive.passwordreset.token','1fgNz9LH') , (2,'jive.passwordreset.timestamp','1131889036888') , (2,'jive.passwordreset.last_sent','1131889036888') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;

可以看到,它里面的token是没有加密的。

当用户用jive3发的重设密码的链接:http://localhost:8080/jive3/resetPassword!default.jspa?userid=5&token=2qSwKIgy 重设密码后,有关的字段值就被删除了,如下:

INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;

jive3是隔了72小时取回密码失效,下面验证一下,发送密码后的值:

INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (2,'jive.passwordreset.last_sent','1133261729536') , (2,'jive.passwordreset.timestamp','1133261729536') , (2,'jive.passwordreset.token','ywE1T2Q0') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;

把系统时间调后72小时以后,重设密码失败:

Forums - Reset Your Password

  Welcome, Guest 

 Login 

 Guest Settings 

 Help 

 

Please enter the userID and the token exactly as shown in the password reset email you have previously received. Please note that the token is case sensitive.

An error occurred validating the userID and token that was just entered. Please confirm the userID and the token was entered exactly as shown in the email and note that the token is case sensitive. If both are exactly as shown in your email and 72 hours have passed since the email was sent, you will have to start over.

Reset your password 

UserID:   

Token:

Invalid token   

New Password:   

Confirm Password:   

  

查看数据库中相应的字段:

INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;

可以看出,字段值已经被删除了。

至此,jive3的取回密码实现的大概思路已经掌握了。

可怕的高烧

  昨晚,约凌晨1点,孩子开始说胡话。体温40.1度。赶紧送到医院急诊,打了针,吃了饭。今天下午,请假在家照顾小孩。体温仍未完全正常,看来今天晚上要小心。

  冬天,孩子的体温不要凭手摸,应该用温度计。

学习日记定位

  1、学习者面对信息的海洋,无所适从;

  2、整合个人的网络学习资源;

  3、提供到自己喜爱的学习资源的同步接口;

  4、个性化的指导,适合自己的才是最好的;

  5、集中理念,分散管理,灵活;

  6、人性化的学习家园。