加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

无法在PHP中编码字符(字符串值不正确)

发布时间:2020-12-13 17:19:48 所属栏目:PHP教程 来源:网络整理
导读:我想在将丹麦语字符发送到数据库之前对其进行编码. 我尝试将此功能应用于它们: private function process_array_elements($element){ $element = utf8_encode($element); $element = strip_tags( $element ); $element = strtolower ( trim ( $element ) );
我想在将丹麦语字符发送到数据库之前对其进行编码.

我尝试将此功能应用于它们:

private function process_array_elements(&$element){
   $element = utf8_encode($element);
   $element = strip_tags(  $element );
   $element = strtolower ( trim ( $element )  );
   $element = mysql_real_escape_string($element);
   return $element;
}

像这样:

$this->check_line_two = $this->process_array_elements($e);

现在,每当我尝试将字符串发送到数据库时:

mysql_query("SET NAMES 'utf8'");
$query="INSERT INTO  result_scanned
          SET line_one= '$this->check_line_one',line_two='$this->check_line_two',line_three='$this->check_line_three',advert_id='$this->advert_id',scanned='$this->scan_result'";

我明白了:

Incorrect string value: 'xE3x83xE2xB8r ...' for column 'line_three' at row 1

表中字段的数据类型是UTF-8(utf8_unicode_ci),所以我必须使用相同的方法编码我的字符串

这个帖子与我的问题有关:Detect encoding and make everything UTF-8.

但是,在将任何字符插入数据库之前,我需要知道如何将任何字符编码为UTF-8,否则,我会收到上述错误.我想我需要首先确定在将它们放入数据库之前我接收的是哪种字符.

解决方法

utf8_unicode_ci是排序规则,你需要将字符集设置为utf8:

CREATE TABLE someTable DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci;

为了更好地衡量,使用PHP连接到MySQL时,请确保所有内容都是UTF-8:

mysql_connect ("localhost","DB_USER","DB_PASSWORD") or die (mysql_error());
mysql_select_db ("DATABASE_NAME") or die (mysql_error());

mysql_query("SET character_set_client=utf8"); 
mysql_query("SET character_set_connection=utf8"); 
mysql_query("SET character_set_database=utf8"); 
mysql_query("SET character_set_results=utf8"); 
mysql_query("SET character_set_server=utf8"); 
mysql_query("SET NAMES 'utf8'");

这就是我在我运行的Hebrew gibberish translation网站上的连接方式,它处理了我或用户投入的所有内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读