gpt4 book ai didi

javascript - 是否可以在 javascript 中将阿拉伯字符编码为 ISO-8859-6 或 Windows-1256?

转载 作者:行者123 更新时间:2023-11-30 06:47:04 25 4
gpt4 key购买 nike

我实际上正在寻找一个可以像 Java 的 java.net.URLEncoder.encode(String s, String encoding) 一样工作的 javascript 函数(或库),但如果那不可能,你怎么能将阿拉伯字符编码为单字节编码的阿拉伯字符集,如 ISO-8859-6 或 Windows-1256。

最佳答案

不幸的是,JavaScript 在使用 encodeURIComponent 时仅支持 UTF-8 编码(严格来说这是正确的做法,因为使用不同字符集的 URL 编码在技术上是可行的,但不是标准化的)。

如果您希望浏览器进行编码,那么(据我所知)AJAX 是不可能的。

浏览器以带有 accept-charset 的形式执行此操作:

<form action="/some-url" method="get" accept-charset="ISO-8859-6">
<input name="test">
<input type="submit">
</form>

因此您可以使用 JavaScript 生成这样的表单,将其提交到 iframe,然后读取其内容。

如果那不是一个选项,我想您需要编写自己的 URI 编码器。像这样:

var iso_8859_6_encoding = {"ء": "C1", "آ": "C2", "أ": "C3", "ؤ": "C4" /* etc. */};

function encodeURIComponentWithCharset(str, charset) {
var result = "";
for (var i = 0, len = str.length; i < len; i++) {
var char = str.charAt(i);
if (str.charCodeAt(i) < 128) {
result += encodeURIComponent(char);
} elseif (charset[char]) {
result += "%" + charset[char];
} else {
// Drop undefined chars
}
}
return result;
}

encodeURIComponentWithCharset("your string", iso_8859_6_encoding);

(未经测试。编码来自 http://en.wikipedia.org/wiki/ISO-8859-6)

关于javascript - 是否可以在 javascript 中将阿拉伯字符编码为 ISO-8859-6 或 Windows-1256?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5484928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com