将 ISO-8859-1 转换为 UTF-8 [重复]
Posted
技术标签:
【中文标题】将 ISO-8859-1 转换为 UTF-8 [重复]【英文标题】:Convert ISO-8859-1 to UTF-8 [duplicate] 【发布时间】:2014-04-30 12:07:59 【问题描述】:我正在通过 jQuery 的 ajax 发送 HTTP 请求。
但是我无法访问的服务器返回 ISO-8859-1,而我的页面是 UTF-8。
如何将字符转换为可读?
对于没有转换的情况,看起来像:it�rio
@编辑: 我尝试使用以下方法更改 ajax 请求的字符集:
$.ajax( contentType: ... );
我尝试将 html 的元数据更改为 ISO-8859-1。
@解决方案: 我在以下位置找到了解决方案:https://***.com/a/14397845/3451442
【问题讨论】:
@mplungjan 我已经搜索过了。但我需要从 ISO-8859-1 转换 你可以试试contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
或contentType: "application/x-www-form-urlencoded;charset=UTF-8",
(不确定它转换的方式)
@mplungjan 我也试过了,但没有用。我需要一个像 iconv =/ 这样的函数
@mplungjan 抱歉,我会编辑帖子。
【参考方案1】:
试试下面的技巧:How do I convert special UTF-8 chars to their iso-8859-1 equivalent using javascript?
在你的情况下,你可以简单地使用:
utfstring = unescape(encodeURIComponent(ajaxreturn));
编辑:如果这也不起作用,请尝试相反的方法:
fixedstring = decodeURIComponent(escape(ajaxreturn));
如果您发布“编码”函数的输出也可能会有所帮助 - 这样可以识别正在发生的事情:
encodeURIComponent(ajaxreturn)
vs.
escape(ajaxreturn)
如果这些都不起作用,我猜你应该将整个页面转换为 iso-8859-1:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
【讨论】:
效果不佳。内容是:it�rio 是:it�rio 试试decodeURIComponent(ajaxreturn.replace(/\\x/g,"%"))
,它对我有用。以上是关于将 ISO-8859-1 转换为 UTF-8 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 Java 中将 UTF-8 转换为 ISO-8859-1 - 如何将其保持为单字节
C# 将字符串从 UTF-8 转换为 ISO-8859-1 (Latin1) H