如何在 javascript 中表示其他语言?
Posted
技术标签:
【中文标题】如何在 javascript 中表示其他语言?【英文标题】:How do I represent other languages in javascript? 【发布时间】:2016-12-24 10:20:42 【问题描述】:我尝试在网站中表示文本。
但是,该文本是从 Perl 返回的 html 结果中提取的。所以它已经是UTF-8了。英文文本显示得很好,但泰文文本显示不正确。
这是我存储在数据库中的泰文文本
http://windu.cpe.kmutt.ac.th/cgi-bin/Devel/SeniorProjectAssistant.pl?action=getabstract&projectid=88&english_flag=false&projectyear=2559
将编码设置为 UTF-8,您将看到正确呈现的泰语文本。
但是我得到的输出不是我期望的
如您所见,英文文本是正确的,但泰文文本不正确。
这是我用来从数据库中提取数据的代码;
function getAbstract_API(projectYear,projectId,english_flag,successfunction, errorfunction)
var requestString = url + "?action=getabstract&projectyear=" + projectYear;
requestString += "&projectid=" + projectId + "&english_flag=" + english_flag;
var request = new XMLHttpRequest();
request.open("Get",requestString);
request.send(null);
// Register a handler to take care of the data on return
request.onreadystatechange = function()
if (request.readyState == 4)
if (request.status == 200)
// If we get here, we got a complete valid HTTP response
var response = request.responseText;
var errorpattern = /\w*ERROR/;
if (response.match(errorpattern))
var errcode = extractErrorCode(response);
var messagedetail = getMessageDetail(errcode);
showI18NAlert(messagedetail);
if (errorfunction)
errorfunction();
return false;
alert(response);
if (successfunction)
successfunction();
else
showI18NAlert('requesterror_msg');
我用alert(response)
查看结果,英文没问题,泰文不行。所以我认为这一步一定有什么错误。
有人知道如何处理这种情况吗?
【问题讨论】:
你能举例说明你的期望和得到的吗? 【参考方案1】:您的 Perl 程序发送的数据不是 utf-8 编码的。如果您查看标题,您会发现它是 Latin-1 (ISO-8859-1)。
HTTP/1.1 200 OK
Date: Thu, 18 Aug 2016 08:14:27 GMT
Server: Apache/2.2.15 (CentOS)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
我不知道您是如何创建该输出的。如果是CGI.pm,您只需更改标题以包含正确的编码字符串。它可能看起来像这样。
print $cgi->header(
-type => 'text/html',
-charset => 'utf-8',
);
您也不发送完整的 HTML 文档。你的文档结构是这样的。
<h3>
...
</h3>
</body>
</html>
有些东西不见了。这与问题无关,但可能会给您带来其他问题。如果您只想获取文本,请考虑将您的响应切换为 text/plain
并完全删除 HTML,或者只使用 application/json
并将其包装在 JSON 对象中。
【讨论】:
以上是关于如何在 javascript 中表示其他语言?的主要内容,如果未能解决你的问题,请参考以下文章