2010-04-07 27 views
3

我打电话从Flash一个PHP文件,之后添加变量,像这样到PHP: http://www.randomwebsite.com/something.php?title=爸爸传球得到的Flash变量有中国特色

,如果我复制并直接粘贴到网页浏览器,它工作正常,然而,如果我通过flash调用它,地址栏将会像这样结束:something.php?title = ??

有没有什么我可以从PHP或Flash来编码/解码字符串? 任何帮助,不胜感激。

感谢, 威尔

编辑: 感谢球员,这种方法非常完美。一切都很好,但我现在有一些问题通过MySQL将信息插入到我的数据库中,我的所有字段都设置为UTF-8。我收到一些怪异的字符而不是中文字符。

非常感谢, 威尔

回答

1

如果您在插入数据库时​​遇到问题,您需要确保过程中涉及的所有内容都是utf8。如果您已经在phpmyadmin中测试了您的查询并且它工作正常,我会建议在您的php脚本中在您的查询中添加以下内容:

mysql_query("SET character_set_client=utf8", $connection); 
mysql_query("SET character_set_connection=utf8", $connection); 
3

你需要URL编码,放在查询字符串参数。虽然IRI可以包含文字,但URIs不能。它应该编码为%E7%88%B8。 (在地址栏中它通常仍会显示为,但某些情况下在IE中除外。)

encodeURIComponent()是在JavaScript/ActionScript中执行此操作的函数。

0

请参阅rfc1738 2.2(http://www.faqs.org/rfcs/rfc1738),您需要对字符串进行编码。 我不知道如何在Flash中执行此操作,但PHP为您提供了函数(raw-)urlencode()和(raw-)urldecode()来执行此操作。

0

您需要URL-encode这些字符(您正在使用的浏览器可能会自动为您执行此操作)。这用于允许传输URL中通常不允许的字符(如空格)或具有特殊含义(如'?''&')。

由于您使用的字符不是标准的ASCII码,因此应将其编码为Unicode。当您调用Flash中的顶级encodeURIComponent()函数时,会自动为您完成此操作,并且每个Unicode字符会输入几个%xx个字符。