我正在使用PHP7.0进行开发,并尝试使用函数utf8_encode(),并得到了“调用未定义函数utf8_encode()”的错误
我必须尝试使用sudo apt安装php7.0-xml安装php7.0-xml模块,并得到以下错误:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
php7.0-xml : Depends: php7.0-common (= 7.0.18-0ubuntu0.17.04.1)
but 7.0.18-1+deb.sury.org~yakkety+1 is to be installed
E: Unable to correct problems, you have held broken packages.如果我做了sudo apt-cache search php7.0-*,我得到了这样的结果:
libapache2-mod-php7.0 - lado servidor, lenguaje de guionización HTML-embebido (módulo Apache 2)
php7.0 - Lenguaje de guión empotrado para HTML en el lado del servidor (metapaquete)
php7.0-cgi - Lenguaje de guiones embebidos en HTML para servidores (binario CGI)
php-all-dev - package depending on all supported PHP development packages
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-common - documentation, examples and common module for PHP
php7.0-curl - CURL module for PHP
php7.0-dev - Files for PHP7.0 module development
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-json - JSON module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-opcache - Zend OpCache module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-readline - readline module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php-geoip - GeoIP module for PHP
php-xdebug - Xdebug Module for PHP
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php-amqp - AMQP extension for PHP
php-apcu - APC User Cache for PHP
php-gearman - PHP wrapper to libgearman
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-gnupg - PHP wrapper around the gpgme library
php-http - PECL HTTP module for PHP Extended HTTP Support
php-igbinary - igbinary PHP serializer
php-imagick - Provides a wrapper to the ImageMagick library
php-libsodium - PHP wrapper for the Sodium cryptographic library
php-mailparse - Email message manipulation for PHP
php-memcache - memcache extension module for PHP
php-memcached - memcached extension module for PHP, uses libmemcached
php-mongodb - MongoDB driver for PHP
php-msgpack - PHP extension for interfacing with MessagePack
php-oauth - OAuth 1.0 consumer and provider extension
php-pinba - Pinba module for PHP
php-propro - propro module for PHP
php-ps - ps module for PHP
php-radius - radius client library for PHP
php-raphf - raphf module for PHP
php-redis - PHP extension for interfacing with Redis
php-remctl - PECL module for Kerberos-authenticated command execution
php-rrd - PHP bindings to rrd tool system
php-smbclient - PHP wrapper for libsmbclient
php-solr - PHP extension for communicating with Apache Solr server
php-ssh2 - Bindings for the libssh2 library
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-tideways - Tideways PHP Profiler Extension
php-uploadprogress - file upload progress tracking extension for PHP
php-uuid - PHP UUID extension
php-yac - YAC (Yet Another Cache) for PHP
php-yaml - YAML-1.1 parser and emitter for PHP
php-zmq - ZeroMQ messaging bindings for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-bz2 - bzip2 module for PHP
php7.0-dba - DBA module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-soap - SOAP module for PHP
php7.0-sybase - Sybase module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0-zip - Zip module for PHP我正在和ubuntu合作,我的版本是:

如何使用utf8_encode或utf8_decode函数?
更新1:
我已经尝试安装php7.0
php7.0-common is already in its most recent version
(7.0.18-1+deb.sury.org~yakkety+1).如何安装php7.0-xml模块?
更新2:
我必须尝试安装sudo apt-get安装php7.0-mbstring,但是我还没有安装这个模块。
我必须尝试安装另一个模块sudo apt installphp7.0-xmlrpc,我得到了相同的结果:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
php7.0-xml : Depends: php7.0-common (= 7.0.18-0ubuntu0.17.04.1)
but 7.0.18-1+deb.sury.org~yakkety+1 is to be installed
E: Unable to correct problems, you have held broken packages.这对我不管用。
更新3:原始设置:在UTF-8中编码,MySQL数据库用default character set latin和collate latin1_spanish_ci;编写.
在web上,有一段时间,我们向服务器请求地址,在地址中,我们得到了一些特殊字符:

我们将返回id = 2的行。在字段"direccion“中,我们得到了这个字符"ü”。服务器对请求的响应而不对地址进行编码,我得到:
请求是可以的。

但答复是:

什么都没有,没有回应!
现在,我们将把这个地址编成法典,就像@duskwuff推荐的那样:
$utf8_text = iconv("ISO-8859-1", "UTF-8", $row["address"])请求是相同的,但我们现在得到了答复!

如果我们在网页上打印地址,我们会得到:

更新4:
下一次测试..。我们将进行与更新3相同的测试,但更改MySQL数据库默认字符和排序规则。我们将数据库更改为默认字符UTF8和排序规则utf8_spanish_ci。我们的网页仍然用UTF8编码,来自服务器的响应没有编码地址。
如果我选择数据库,我们可以正确地看到所有的数据。

好的。我将提出一个请求和响应,但没有编码任何东西。不要忘记,数据库中的数据保存在UTF8中。
请求是可以的,但是请求:

没有响应,比如更新3。
但是,如果我们用建议@duskwuff来编撰回应的话:
$utf8_text = iconv("ISO-8859-1", "UTF-8", $row["direccion"]);

我们得到了回复;我们可以看到我们页面上的数据:

因此,我不知道为什么,但我必须将数据编码到UTF8以获得响应。
我使用以下方法创建架构和表:
CREATE SCHEMA IF NOT EXISTS `31juegos` DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish_ci;
CREATE TABLE IF NOT EXISTS `31juegos`.`tbl006_direccion` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`jugador_id` INT UNSIGNED NOT NULL,
`provincia_id` INT UNSIGNED NOT NULL,
`direccion` VARCHAR(100) NOT NULL,
`ciudad` VARCHAR(50) NOT NULL,
`codigo_postal` VARCHAR(5) NOT NULL,
`pais` VARCHAR(50) NOT NULL,
`telefono` VARCHAR(12) NULL,
`fecha` DATETIME NOT NULL DEFAULT now(),
PRIMARY KEY (`id`),
INDEX `fk_tbl006_direccion_tbl005_jugador1_idx` (`jugador_id` ASC),
INDEX `fk_tbl006_direccion_tbl020_provincia1_idx` (`provincia_id` ASC),
CONSTRAINT `fk_tbl006_direccion_tbl005_jugador1`
FOREIGN KEY (`jugador_id`)
REFERENCES `31juegos`.`tbl005_jugador` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_tbl006_direccion_tbl020_provincia1`
FOREIGN KEY (`provincia_id`)
REFERENCES `31juegos`.`tbl020_provincia` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;我们编纂的领域是:
`direccion` VARCHAR(100) NOT NULL,发布于 2017-05-11 23:41:29
不要使用utf8_encode()或utf8_decode()函数。它们有误导的名字--它们实际上执行ISO-8859-1和UTF-8之间的转换。在大多数情况下,它们不应该是必要的;您的数据库和应用程序应该始终使用UTF-8文本,而且根本不应该处理ISO-8859-1文本。
如果您实际上需要将文本从ISO-8859-1转换为UTF-8 --这就是utf8_encode()所做的--使用iconv()函数:
$utf8_text = iconv("ISO-8859-1", "UTF-8", $iso_8859_1_text);完全避免使用utf8_decode()函数。它将UTF-8文本转换为ISO-8859-1,并用问号替换任何在ISO-8859-1中不可用的字符。这将破坏许多欧洲语言的文字,并将使非拉丁文本(如俄文或中文)完全不可读。
https://stackoverflow.com/questions/43925864
复制相似问题