该插件的作用是运行一个Web服务器,为一个html页面提供一些特殊的变量,它取代了请求的实际数据(播放列表,请求队列,歌曲中剩余的时间等).
我认为这是一个有趣而且很好的项目来学习一些jQuery所以我开始连接我自己的js代码来替换,修复和ajaxify服务的网站从插件,但我现在遇到了字符编码的问题.
在页面上,您可以获得播放列表中所有歌曲的链接.当你点击其中一个链接时,我连接了我自己的jQuery点击功能.因此,当你请求一首歌时我没有重新加载整个页面,而是执行$.get($(this).attr(‘href’,function(response){… code …})然后我使用replaceWith来使用新生成的队列替换当前队列,同时添加您的请求.我做同样的事情来显示/更新当前正在播放和搜索,以便在后台获取所有内容,然后在动画中添加一些动画.
所有的jQuery / Ajax都很棒,但我遇到的最大问题是charset和queue / playlist中的歌曲名称.名称中的特殊字符(åäöé等)根本不起作用.
该插件输出iso-8859-1 / latin1中的所有内容,标记中的Meta标签告诉浏览器该页面为latin1.在浏览器中的正常页面刷新中,这很好用,并且特殊字符显示为正常.但是当我使用jQuery和$.get()来动态替换代码块时,特殊字符只显示为?
我认为问题在于,如果没有标题说明,jQuery默认认为$.get()响应是UTF-8.该插件根本没有为encoding / charset设置任何标头,因为我无法控制所有后端以及设置了哪些标头我无法改变这一点.
我在插件的响应中获得的唯一标头是:
Server: WinampServer
Connection: close
Content-Type: text/html
我希望你理解我的问题.我有一个页面,我无法控制后端,我必须使用的是生成的HTML.我无法在响应中更改或添加标头.我需要告诉jQuery响应实际上是在latin1而不是UTF-8,以便特殊字符的编码不会中断.我在jQuerys ajaxSetup中尝试过scriptCharset:’iso-8859-1′,但这只适用于脚本/ json类型,我正在使用HTML响应.
是否有可能或任何其他可以考虑的解决方法?