文本框的字符编码

6
我有一个网页,其中有一个文本区域供用户输入数据。当在javascript中读取文本区域的值以将其与先前的值进行比较时,我会得到具有平台编码的值('ä' => %e4),而我的数据库中的值是使用UTF-8编码的('ä' => $%c3%a4)。该网页的编码方式为UTF-8,使用 XML 编码属性和 meta 字符集。浏览器也说它正在使用UTF-8编码,但仍然textbox.value是平台编码。 有没有人知道如何告诉用户代理返回textarea.value为UTF-8?

这个问题需要进一步澄清。你使用什么服务器端语言来读取数据库?你如何编码网页?你是否使用“meta content=”? - mmcglynn
1
谢谢您的评论,但由于这已经过去将近一年了,我已经用另一种方式解决了这个问题。无论如何回答这个问题:XHTML页面使用xml编码属性和<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>以UTF-8编码。即使我手动输入文本到文本字段中,它的值始终是平台编码的。 - Alexander Reifinger
1
那么你应该回答自己的问题,这样它就不再被标记为“未回答”。 - rhavin
从技术上讲,它是未回答的 - 即使答案不再困扰我(但仍然感兴趣)。无论如何,如果有人回答说“这是预期行为”或“无法重现”或“你是个白痴”,我都会接受这个作为有效答案 :-) - Alexander Reifinger
1个回答

0

以下方案是否适合您?

function encode_utf8( s )
{
   return unescape( encodeURIComponent( s ) );
}

在你调用encode_utf8函数时,传入文本框的值。这是另一个Stack Overflow答案此处中的建议。虽然问题不完全相同,但解决方案可能适用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接