本文最先发表在本人个人java+flex技术博客
http://www.lovestblog.cn,欢迎大家光临。
这两天接了一个网站,比较简单两三天就基本搞定了,但是其中碰到最难的就是flex的一个中文问题了,下面我主要想讲讲三种不同的现象。
- 第一种:
Image组件的源地址是中文的,比如resources/数学/高等数学/math.jpg;
tomcat中的server.xml中配置端口的那段加上 URIEncoding="utf-8";
直接访问资源地址如:http://localhost:8080/WebTest/resources/数学/高等数学/math.jpg;
这种情况下Image组件不能显示出来,下面直接访问的地址能访问到数据。
- 第二种:
Image组件的源地址是GBK的,比如比如resources/数学/高等数学/math.jpg;
tomcat中的server.xml中配置端口的那段加上 URIEncoding="GBK";
直接访问资源地址如:http://localhost:8080/WebTest/resources/数学/高等数学/math.jpg;
这种情况下Image组件式能显示出来的,但是直接访问的那个地址是不能访问到数据的。
- 第三种:
mage组件的源地址是utf-8的,比如resources/%E6%95%B0%E5%AD%A6/%E9%AB%98%E7%AD%89%E6%95%B0%E5%AD%A6/math.jpg;
tomcat中的server.xml中配置端口的那段加上 URIEncoding="utf-8";
直接访问资源地址如:http://localhost:8080/WebTest/resources/数学/高等数学/math.jpg;
这种情况下Image组件式能显示出来的,直接访问的那个地址是也能访问到数据。
原因分析:
浏览器默认的编码方式是utf-8的,flex中地址默认是采用utf-8的,而tomcat默认的编码方式是ISO-8859-1的,即我们访问的地址都是iso-8859-1编码的,如果不设置tomcat中的编码方式即为默认的iso-8859-1方式,那么浏览器中的请求地址中的中文是不能被解析的,所以请求不到资源,因此,我们通过设置tomcat的编码方式为utf-8即可以通过浏览器访问到含有中文名的资源。同理默认情况下flex组件也访问不到带有中文路径的资源;
如果tomcat设置为utf-8的,我们可以访问http://localhost:8088/EncodingTest/resource/未命名.jpg类似的地址,但是对于flex中<mx:Image source="resources/体育/足球/1.jpg" />这样的组件还是显示不出来(这点我也疑惑,还望高人指点),但是我们设置为<mx:Image source="resources/%E4%BD%93%E8%82%B2/%E8%B6%B3%E7%90%83/1.jpg" />这样我们就能访问到了。
如果tomcat编码方式设置为GBK的话,对于flex组件<mx:Image source="resources/体育/足球/1.jpg" />我们是可以访问到的,但是对于<mx:Image source="resources/%E4%BD%93%E8%82%B2/%E8%B6%B3%E7%90%83/1.jpg" />这样的我们是访问不到的,对于浏览器中的地址http://localhost:8088/EncodingTest/resource/未命名.jpg,我们是访问不到的,但是对于我们把未命名进行GBK编码之后的%CE%B4%C3%FC%C3%FB替换了,即http://localhost:8088/EncodingTest/resource/%CE%B4%C3%FC%C3%FB.jpg就能访问了。至于如何取得中文的GBK编码我们可以通过java方法取得,比如String s="未命名.jpg";s=java.net.URLEncoder.encode(s,"GBK");这样就取得了“未命名.jpg”的GBK编码了。
总结如下:
总结出了一个基本解决中文编码的方法,即tomcat中设置编码为utf-8,flex中组件要访问资源的路径如果带有中文那么我们去把中文转换成utf-8格式的在赋值给组件的source属性,对于浏览器中访问的地址就可以是带有中文的访问地址了。
分享到:
相关推荐
9. **Flex3帮助文档**:Flex3中文版API提供的帮助文档详细解释了每个类、方法、属性和事件,是学习和解决问题的重要资源。 10. **学习路径**:对于初学者,了解Flex3的基本架构和组件是开始的步骤,然后深入学习...
标题“Flex中文本高亮显示”涉及到的是在Adobe Flex中实现文本内容的高亮显示技术。Flex是一款基于ActionScript的开源框架,用于构建富互联网应用程序(RIA)。在Flex中,文本高亮通常用于突出显示用户搜索的关键字...
这篇名为“Flex CollapsibleAccordion(折叠式手风琴) 中文问题解决”的博客文章,可能详细讨论了如何在Flex项目中解决中文字符乱码或无法正常显示的问题。通常,这类问题的解决方法包括以下几个方面: 1. **字符...
Flex中文帮助文档是针对初学者极其重要的资源,它详尽地涵盖了Adobe Flex这一跨平台的开源框架的相关知识。Flex主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA),它结合了MXML和ActionScript...
本文将探讨如何在Adobe Flex中读取包含中文字符的Excel文件,主要涉及使用AS3XLS库来解决这个问题。 首先,AS3XLS是一个ActionScript 3的开源库,专门用于处理Microsoft Excel文件。它允许Flex应用程序创建、读取和...
《Flex3 Java 中文教程》是一本专注于Adobe Flex 3技术的中文教程,结合了Java技术和Adobe Integrated Runtime(AIR)的应用,旨在帮助开发者深入理解和掌握使用Flex 3进行富互联网应用(RIA)开发的方法和技巧。...
在Eclipse或MyEclipse中,我们可以新建一个Flex项目,并指定Java工程发布的Tomcat路径、访问路径、上下文根和输出路径。验证配置无误后,继续下一步,设置Flex工程的源代码位置和主界面。 在Flex工程中,我们可以...
《Accessing_Data_with_Flex_4.pdf》很可能是关于数据访问和处理的指南,Flex4提供了强大的数据服务支持,包括AMF(Action Message Format)通信、 BlazeDS或LiveCycle Data Services等数据连接技术,使得Flex应用...
1. 解压FlashBuilder_4_Plugin_LS10,确保路径无中文字符。 2. 安装过程中选择MyEclipse的运行目录(含myeclipse.exe的路径)。 3. 将Flex 4的eclipse目录下features和plugins文件夹内容复制到MyEclipse安装目录下的...
1. 选择不含中文字符的解压路径。 2. 安装过程中,指定MyEclipse的运行目录,确保插件能正确与MyEclipse整合。 **五、配置Flex 4** 1. 将Flex 4的安装目录中`eclipse`和`eclipse-host-distro`下的`features`和`...
安装Adobe Flash Builder Plugin插件时,需要注意解压路径不能包含中文,因为中文路径可能会导致安装出错。安装插件后,需要将Flex和Flash Builder的插件文件夹内容复制到MyEclipse的相应目录下。 此外,Flex的配置...
本指南将围绕ArcGIS for Flex的学习路径展开,涵盖从基础概念到实际操作的各个环节。 1. **ActionScript3.0 中文版**: ActionScript 是 Flex 开发的核心语言,类似于 JavaScript,但更专注于富互联网应用程序(RIA...
### Flex_4开发详解知识点概览 #### 一、Flex技术概述 **1.1 Flex简介** - **定义**: Flex是Adobe公司推出的一种用于开发和部署富互联网应用程序(RIA)的技术。 - **特点**: 提供一种现代化的标准语言,支持模板...
- 在Flex和Java代码中添加中文注释有助于中国开发者理解代码逻辑,尤其是在团队合作时。 - 注释应清晰描述各个函数、类和方法的作用,以及关键步骤的原因。 6. 测试: - 文件上传功能需要进行全面的测试,包括...
《跟我StepByStep学FLEX》这本教程通过大量的实例和深入浅出的讲解,不仅适合FLEX初学者入门,也为进阶用户提供了一个良好的学习路径。从基本的概念和工具使用,到高级的主题和实战案例,本书都涵盖了FLEX开发的关键...