0

我有一个带有输入字段的表单。当我将包含变音符号的文本写入其中时,将值保存到 db 并重新加载页面,当我输入它们时,我会在表单中看到带有变音符号的书面文本。示例:我输入Bär,保存后重新加载我看到的页面Bär

现在,问题是当我插入俄语或中文字母时,它们会按预期显示。但是当我将它们保存到数据库并重新加载页面时,我得到了错误的字符表示。

例:我写Москва。保存表单并重新加载页面后,我看到了Москва。这看起来像没有正确显示的 html 实体,但我认为这是 unicode 十六进制字符代码。

如何存储和检索在我的 html 表单中正确显示的外国字母?

4

2 回答 2

1

首先尝试添加
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
如果这不起作用,请检查数据库和表中的默认排序规则。当我必须处理翻译并且对我有用时,我总是使用 utf8_general_ci

于 2013-06-25T08:23:58.307 回答
0

自己找到了解决方案。

实际上,输入字段的值在写入数据库之前先进行 utf-8 编码,然后再进行 cp1252 编码。

当我从数据库中检索输入字段数据时,我需要调用这个小替换(perl 代码)

$inputfield_text=~ s/&(#[xX]?[0-9a-fA-F]+;)/&$1/g;

在我输出字符串之前。

于 2013-06-25T08:46:32.643 回答