草庐IT

utf8mb_unicode_ci

全部标签

PHP utf8问题

我在将包含挪威字符的数组与utf8字符进行比较时遇到了一些问题。除了特殊的挪威字符(æ、ø、å)之外的所有字符都可以正常工作。functionisNorwegianChar($Char){$aNorwegianChars=array('a','A','b','B','c','C','d','D','e','E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','q','Q','r','R','s','S','t','T','u','U','v','V','w'

php - 如何在我的 utf-8 编码页面上正确显示 utf 编码字符?

我正在检索电子邮件,我的一些电子邮件有utf编码的文本。然而,即使我的页面被编码为utf8-在某些地方,当我尝试输出utf文本时,我会得到有趣的字符,例如:=?utf-8?B?Rlc6INqp24zYpyDYotm+INin2LMg2YXYs9qp2LHYp9uB2bkg2qnbjCDZhtmC?==?utf-8?B?2YQg2qnYsdiz2qnYqtuSINuB24zaug==?=而在同一页面的其他区域显示正常。这是怎么回事? 最佳答案 这不是“有趣的字符”,它们是合法的ASCII字符。只是该字符串是为传输而进行的MIME编码,

php - unicode 模式下的 preg_split : delim_capture not working?

我正在尝试使用正则表达式将一大块中文文本拆分成句子。就我而言,句子分隔符是:全角句号。(0x3002)全角问号?(0xFF1F)全角感叹号!(0xFF01)现在,假设我的$str是这样的:$str="你好。你好吗?我是程序员,不太懂这个我的问题,希望大家能帮得上忙!一起加油吧!";我使用带有这些参数的preg_split:$str2=preg_split("/([\x{3002}\x{FF01}\x{FF1F}])/u",$str,PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);$str2现在是一个数组,如下所示:array(3){[0]=>

php - 使用 CI activerecords 组合 `where` 和 `like` 语句

长话短说:是否可能,如果可能-我如何构建一个看起来有点像这个的查询SELECT*FROMaWHERErow=1AND(other_rowLIKE'%..%'ORanother_rowLIKE'%..%')基本上我无法想出/找到解决这个问题的方法。我似乎无法弄清楚如何将括号添加到activerecords查询中。这可能吗?我当前的代码:$data=$this->where('row',1)->like('another_row','...')->or_where('row',1)->like('other_row',$search)->get('a')->result();结果:SELE

php - 类 'CI_Driver_Library' 未找到 codeigniter 错误

我想使用session,所以我尝试自动加载。在application>config.php中,我执行$autoload['libraries']=array('session');但是我遇到了以下错误Message:Class'CI_Driver_Library'notfoundFilename:Session/Session.php 最佳答案 如果您使用Codeigniter3.0或更高版本,请使用:$autoload['drivers']=array('session');因为session在3.0版本之后是driver而不是l

php - code igniter 模块化扩展 - 对 MX_Router::_set_default_controller() 的访问级别必须是公共(public)的(如在 CI_Router 类中)

我从中安装了流行的模块化扩展-HMVChttps://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc并使用codeigniter2.2.2进行设置但是当一切正常时,我收到此错误AccessleveltoMX_Router::_set_default_controller()mustbepublic(asinclassCI_Router)inC:..\application\third_party\MX\Router.phponline241 最佳答案 方案一

php - 正则表达式匹配任何 UTF 字符,不包括标点符号

我正在PHP中准备一个函数来自动转换字符串以用作URL(*.html)中的文件名。虽然应该使用ASCII以确保安全,但出于SEO的需要,我需要允许文件名使用任何语言,但我不希望它包含破折号(-)和下划线(_)、字符以外的标点符号像*%$#@"'不应该被允许。空格应转换为破折号。我认为使用Regex将是最简单的方法,但我不确定如何处理UTF8字符串。我的ASCII函数如下所示:functionconvertToPath($string){$string=strtolower(trim($string));$string=preg_replace('/[^a-z0-9-]/','-',$s

php - 变音符号和 mb_substr 的问题

我正在使用mb_substr函数对带有变音符号的unicode字符串进行切片,但它的工作原理与我使用简单的substr函数一样。它将unicode字符分成两半,显示带问号的菱形。例如echomb_substr('ááááá',0,5);//Displaysáá�可能出了什么问题? 最佳答案 如果我不将编码指定为mb_substr的最后一个参数,我会遇到同样的问题:至少在我的服务器上,它默认为ISO-8859-1。但是,如果我将编码正确设置为UTF-8,它就可以正常工作:echomb_substr('ááááá',0,5,'UTF-8

php mb_strtolower 给出无效字符

以下代码会产生问题。var_dump($name);$name=mb_strtolower($name);var_dump($name);输出是string(32)"brazilandtechnology,SãoPaulo"string(32)"brazilandtechnology,s�opaulo"谁能解释一下为什么我得到的ã字符无效?我在这里做错了什么?mb_detect_encoding($name)saysitsUTF-8 最佳答案 mb_strtolower()有第二个参数来指定编码。如果省略,它使用mb_interna

php - utf8 到 ISO-8859-1 无法通过 Curl 正确转换某些字符

我有一个采用UTF8编码字符的应用程序,需要使用ISO-8859-1编码通过curl将它们作为xml的一部分发送。这是我的测试代码:header('Content-Type:text/plain;charset=IS0-8859-1');$message='§°"@#€%&/()=+`´^¨*-_:.;,';echomb_convert_encoding($message,'ISO-8859-1','UTF-8');//buildxmltopost$content=''.CUSTOMER_ID.''.PASSWORD_ID.'+12345678900';$posturl=MT_URL;