【问题标题】:UTF-8 '?' symbol with AJAX, PHP,HTMLUTF-8 '?'带有 AJAX、PHP、HTML 的符号
【发布时间】:2018-01-30 20:06:32
【问题描述】:

所以基本上我在php 中有以下代码:

mysqli_query($connect,"SET NAMES 'utf8'");
mysqli_query($connect,"SET CHARACTER SET utf8");
mysqli_query($connect,"SET COLLATION_CONNECTION = 'utf8_unicode_ci'");

html:

<form method="post" accept-charset="utf-8">
 <div class="input-group">
   <input id="name" type="text" class="form-control" name="name"  value="<?php print $data["name"]; ?>" placeholder="<?php print $data["name"]; ?>">
                                                        </div>
</form> 

javascript

var name = $('#name').val();
  var surname = $('#surname').val();
  var phone_number = $('#phone_number').val();
  var GSM = $('#GSM').val();
  var mail = $('#mail').val();
  var work = $('#work').val();
  var pharmacy_name = $('#pharmacy_name').val();
  var pharmacy_id = $('#pharmacy_id').val(); 
  if($.trim(name).length > 0 && $.trim(surname).length > 0 && $.trim(phone_number).length > 0 && $.trim(GSM).length > 0 && $.trim(mail).length > 0 && $.trim(work).length > 0 && $.trim(pharmacy_name).length > 0 && $.trim(pharmacy_id).length > 0)
  {
   $.ajax({
    url:"editProfileAction",
    method:"POST",
    data:{name:name, surname:surname},
    cache:false,
....

我正在使用ajax 编辑mysql db,但像 ıİ,ğĞ 这样的字符显示为 ??但是字符“çÇüÜ”工作正常我尝试了 3 4 小时试图修复它我找不到错误

【问题讨论】:

标签: javascript php jquery ajax utf-8


【解决方案1】:

以正确的方式从 php 中读取 post。 要获得完整的 UFT8 支持,您需要设置:

在 php 级别:将它放在 PHP 脚本的顶部

 <?php
 // Tell PHP that we're using UTF-8 strings until the end of the script
mb_internal_encoding('UTF-8');

在数据库级别:

您的数据库排序规则必须设置为:utf8mb4 字符集和排序规则。

utf8mb4 字符集用于完整的 UTF-8 支持,而不是 utf8 字符集!

在浏览器级别,包括

 // Tell PHP that we'll be outputting UTF-8 to the browser
mb_http_output('UTF-8');

对于 html 部分

<meta charset="UTF-8">

【讨论】:

  • 它在 html 输出中工作,但现在我的数据库中给出的值是 ıİ 我使用 utf8mb4 如你所说
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 2018-03-03
  • 2013-04-26
  • 2016-06-09
相关资源
最近更新 更多