encodeURIComponent 中文 乱码有关问题

【求助】encodeURIComponent 中文 乱码问题
本帖最后由 god1129 于 2015-10-17 17:03:01 编辑
这里有关于javascript 书签的介绍。
http://www.firefoxfan.com/firefox-aggregation/firefox-js-bookmarklet.html

论坛是gbk编码

javascript:title = document.title;url = window.location.href;window.open("http://www.discuz.net/forum.php?mod=post&action=newthread&fid=2"+"&typeid=1&subject="+encodeURIComponent(title)+"&message="+encodeURIComponent(title)+encodeURIComponent (url),"_blank");
把以上的代码收藏在浏览器的书签网址中,当访问网址http://d.wanfangdata.com.cn/Periodical/jxhg200504003时就可以实现填充部分表单,但是有乱码。(因为title是中文的)
discuz 测试账号 smiledz  123qweasd
乱码问题如何解决? 应该是这个论坛编码是gbk的问题,我的论坛也是gbk,也有这个问题.


------解决思路----------------------
引用:
Quote: 引用:

JavaScript使用的是Unicode编码,由于你用encodeURIComponent编码过(Unicode编码的),由于你的网址编码是gbk的,编码不一致,如果你服务端用$_GET获取由于编码不一致,所以中文会乱码。php不太熟悉,怎么编码转换你自己找下了
或者不需要php的$_GET,自己分析location.search得到参数后使用decodeURIComponent进行解码,由于都是在js环境下,就不会乱码了,前提是你能控制那个php页面。
你可以看这篇文章:http://www.ruanyifeng.com/blog/2014/12/unicode.html,不适用encodeURIComponent,自己写个函数生成gbk的编码

感谢版主回复。

是的,如果是utf-8编码的discuz论坛,上面的javascript代码对于访问的网页title是中文没有问题,但是我的discuz论坛是gbk的,访问的网页title是中文就有问题了。

我自己的论坛php我可以控制,但是最好不更改论坛php程序,不知道能否直接修改上面的javascript代码达到效果呢?还是必须修改我自己的discuz 论坛php程序才行?(我的discuz论坛是gbk编码)

引用
分析location.search得到参数后使用decodeURIComponent进行解码,由于都是在js环境下,就不会乱码了,前提是你能控制那个php页面。
以及 
引用
自己写个函数生成gbk的编码

对javascript不懂,不知道如何操作。

希望有懂的朋友帮忙,谢谢大家!



see this:http://www.jb51.net/article/21686.htm
------解决思路----------------------
帮你将文件下载下来了
js对中文进行gb2312/gbk编码
------解决思路----------------------
你要是在浏览器地址栏或者控制台执行代码,你需要将gbk.js里面的文件全部放入控制台里面执行

不明白你这个书签是从哪里运行的,你自己的页面自己导入那个类库