2012-06-07 19 views
0

我想在Flash中加载一些多语言内容。字符编码在HTTP://和FILE://协议之间是不同的?

本地,一切似乎运行良好。

  • 我的本地文件位于HTML页面上,可以调用外部内容作为XML文档。
  • 内容包含CDATA标签中的中文字符。
  • Flash会正确显示中文字符(在设备字体上)。

然而,Web服务器(嵌入在JSP页面)托管的时候,它不工作:显示

  • 的SWF,并加载内容。
  • 内容包含相同的数据,Flash中的原始内容跟踪表明它确实是本地环境中显示的相同中文符号。
  • Flash显示长数字(看起来像每个汉字4个十六进制数字)而不是中文字符,这是不正确的!

所以我很好奇,如果有在Flash解释XML数据的方式的不同,如果SWF文件在本地环境中托管的“file:// ...”或Web服务器的“http://......“。

其他人曾经遇到同样的问题?我正在通过字符编码,Unicode,UTF-8进行搜索,但没有意义,本地版本可以工作,但Web服务器不能。嗯......

- 编辑 -

一些例子:

  • アリコ成为65E5672C751F547D
  • ネクスティア成为30CD30AF30B930C630A330A2
  • アフラック成为30A230D530E930C330AF
+0

由于两种情况下的迹线都是相同的,是否不排除闪光灯以外的问题?你如何显示它,显示一些代码!公司代码 – Torious

+0

,无法在此处插入。但痕迹仅在一定程度上相同。它看起来像将XML转换为字符串(对于我们将数据从中拉出的标签),这些跟踪表明中文符号已更改为Web版本(但不是本地版本)中的数字。希望我能粘贴一些东西来澄清,但对不起! – bigp

+0

嗯不,当我在Developer inspector工具中打开它时,响应实际上显示了中文字符(没有数字,没有unicode,只有符号本身)。所以我不太确定我们是否应该预先 - 编码他们在服务器端先unicode?我们的内容虽然是多种语言,但听起来我们需要unicode一切,但不确定这是否是正确的方法。 – bigp

回答

0

使用网络连接rebug或Chrome Developer Tool来检查从服务器发送的HTTP标头。 mime类型是否正确?

你确实在XML中有正确的编码设置,不是吗。

<?xml version="1.0" encoding="utf-8"?> 

- 编辑

如何System.useCodepage = true;?这不是银弹。

+0

这可能是实际的原因。它不包含在我们动态创建的XML中。 – bigp

+1

如果在XML中没有指定编码,则默认为UTF-8。所以这可以解释为什么本地文件工作正常,如果XML实际上是UTF-8编码。但是,当通过HTTP连接传送XML时,即使XML指定了编码,HTTP'Content-Type'头部也可能取决于其值,因此如果XML不匹配,则XML将不会被正确解析。 –

+0

嗯好吧。我将把上面的XML声明放在HTTP标头设置为“Content-Type:text/xml; charset = UTF-8”之上。也许Flash不够聪明,意识到头文件指定它是UTF-8! – bigp

相关问题