柴门鸟雀噪,归客千里至。光明顶下来,一路听着阵阵松涛,我们走过西海,飞来石,天海,爬过百步云梯,伴着凤凰松迎客松的多姿到了玉屏峰。玉屏峰犹如一道屏障,山面光滑如镜子,如屏风,还不时有几个斗大的字,说是哪位名人留下的。玉屏峰最险的地方是在一线天,上下达七八十度的落差,台阶狭,仅容一人,台阶窄,仅托一足,百米长,走多了,腿便打抖了,害怕了,还不时地叫着好刺激呀。
最近在研究关于php生成图片的东西,发现了 imagettftext() 函数中一个不是错误的错误,具体的错误情况如下所示。
错误代码:
imagettftext(): any2eucjp(): invalid code in input string
错误原因:
在编译php的时候,开启了 --enable-gd-jis-conv 这个选项,而这个选项是对日文的支持,而我们使用utf-8编码的中文时会被识别成日本,所以会抛出一个错误,通俗来说这个错误是一个php本身的BUG,并不是代码的问题。
解决方法:
下面提供两种解决方法,看自己使用那一种。
1、重新编译php,并关闭 --enable-gd-jis-conv 这个选项
2、对字符串进行一个处理
处理代码如下:
// 这里是一个处理函数 function to_entities($string) { $len = strlen($string); $buf = ""; for($i = 0; $i < $len; $i++){ if (ord($string[$i]) <= 127){ $buf .= $string[$i]; } else if (ord ($string[$i]) <192){ $buf .= "�"; } else if (ord ($string[$i]) <224){ $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 31) << 6) + (ord($string[$i + 1]) & 63) ); $i += 1; } else if (ord ($string[$i]) <240){ $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 15) << 12) + ((ord($string[$i + 1]) & 63) << 6) + (ord($string[$i + 2]) & 63) ); $i += 2; } else { $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 7) << 18) + ((ord($string[$i + 1]) & 63) << 12) + ((ord($string[$i + 2]) & 63) << 6) + (ord($string[$i + 3]) & 63) ); $i += 3; } } return $buf; } //函数的使用 imagettftext($im, 11, 0, 5, 11, $black, $font, to_entities($text));
到此这篇关于imagettftext(): any2eucjp(): invalid code in input string 错误如何解决方法就介绍到这了。读不完架上古书却要时时努力,做不完世间好事却要刻刻用心。更多相关imagettftext(): any2eucjp(): invalid code in input string 错误如何解决方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!