我正在从Flash调用一个php文件并在之后添加变量,如下所示: http://www.randomwebsite.com/something.php?title=爸爸
如果我将它直接复制并粘贴到网络浏览器中,它可以正常工作,但是如果我通过flash调用它,地址栏最终会像这样:something.php?title = ??
我可以用PHP或flash来编码/解码字符串吗? 非常感谢任何帮助。
谢谢, 将
编辑: 谢谢你们,这种方法运作得很好。一切都很好,但我现在有一些问题通过MySQL将信息插入我的数据库,我的所有字段都设置为UTF-8。我得到一些奇怪的字符而不是汉字。
非常感谢, 将
答案 0 :(得分:3)
您需要对放在查询字符串中的参数进行URL编码。虽然IRI可以包含文字爸
,但URI不能。它应编码为%E7%88%B8
。 (它通常在地址栏中显示为爸
,但IE中的某些情况除外。)
encodeURIComponent()
是在JavaScript / ActionScript中执行此操作的功能。
答案 1 :(得分:1)
如果您在插入数据库时遇到问题,则需要确保该过程中涉及的所有内容都是utf8。如果你已经在phpmyadmin中测试了你的查询并且它工作正常我会建议在你的php脚本中添加以下查询:
mysql_query("SET character_set_client=utf8", $connection);
mysql_query("SET character_set_connection=utf8", $connection);
答案 2 :(得分:0)
请参阅rfc1738 2.2(http://www.faqs.org/rfcs/rfc1738),您需要对字符串进行编码。 我不知道如何在Flash中执行此操作,但PHP为您提供了函数(raw-)urlencode()和(raw-)urldecode()来执行此操作。
答案 3 :(得分:0)
您需要URL-encode个字符(您正在使用的浏览器可能会自动为您执行此操作)。这用于允许传输URL中通常不允许的字符(如空格)或具有特殊含义(如'?'
和'&'
)。
由于您使用的字符不是标准ASCII,因此它们应编码为Unicode。当您在Flash中调用顶级encodeURIComponent()
函数时,这会自动完成,并且每个Unicode字符会产生几个%xx个字符。
答案 4 :(得分:0)
实际上有几个url编码/解码功能可用(在as3中)。每个人都略有不同。
检查这些:
以上是来自flex参考,我假设它们也可以在CS中使用。