【问题标题】:Charset UTF-8 does not display Umlauts [duplicate]Charset UTF-8 不显示元音变音[重复]
【发布时间】:2016-07-25 05:04:31
【问题描述】:

好吧,作为一名 Web 开发人员,德语很烂。

我有一个发件人。在头部,首先是:

<meta charset="utf-8">

我还检查了标题。设置如下:

Content-Type:text/html; charset=UTF-8

在 php.ini 中,我的默认字符集是:

default_charset="utf-8"

问题出在 HTML/PHP 中,因为当我直接在数据库中编写元音变音 (äöü) 时,当我 var_dump 时 PHP 会得到正确的字符串。 另一方面,当我填写文本区域并发送表单时,POST 参数的 var_dump 每次都有 2 个问号,而不是变音符号。

ä -> ??

我该如何解决?

【问题讨论】:

  • 你尝试过在 HTML 表单中设置accept-charset="UTF-8" 吗?
  • Jep...完全没有变化。
  • 我确定问题不在 HTML 中,而是在数据库连接中。你是如何连接到你的数据库的,在建立连接后你有没有发出SET NAMES UTF8
  • 哈!在这些日子里尝试一下日语...... ;-P

标签: php forms utf-8


【解决方案1】:

我绝望了,所以我添加了一些 Javascript,它会替换 Textbox-Value 中的元音变音符号,直到表单发送为止。

$('form').submit( function(ev) {
var textarea = $('form textarea');
var text = textarea.val();

   text = text.replace(/ä/g,"&auml;");
   text = text.replace(/ö/g, '&ouml;');
   text = text.replace(/ü/g, '&uuml;');
   text = text.replace(/Ä/g, '&Auml;');
   text = text.replace(/Ö/g, '&Ouml;');
   text = text.replace(/Ü/g, '&Uuml;');
   text = text.replace(/ß/g, '&szlig;');

   textarea.val(text);
});

在 PHP 中,我使用 html_entity_decode 将数据写入数据库。

    $sql_arr = array(
       'descr'     =>  html_entity_decode($db->sql_escape($request->variable('description', ''))),
       // Some more Data
    );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多