无法在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网站上的连接方式,它处理了我或用户投入的所有内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |