pcre 不支持 utf 的问题
Posted 军棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pcre 不支持 utf 的问题相关的知识,希望对你有一定的参考价值。
问题:
Error 500
preg_match(): Compilation failed: this version of PCRE is compiled without UTF support at offset 0
具体分析:
开始以为是nginx编译的问题,重新编译,不行。
最后发现是pcre编译有问题,pcre7.9以上的版本,默认是不支持Unicode、UTF-8的,要重新编译手动指定 --enable-utf8
解决方法:
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。这些在执行正则表达式模式匹配时用与Perl 5同样的语法和语义是很有用的,也可以来解决C语言中使用正则表达式的问题。
PCRE下载地址:https://sourceforge.net/projects/pcre/files/pcre/
重新编译安装pcre:
1、下载pcre-8.38.tar.gz
2、解压
# tar zxvf pcre-8.38.tar.gz
# cd pcre-8.38
3、编译安装(指定:--enable-utf8 --enable-unicode-properties )
# ./configure --enable-utf8 --enable-unicode-properties
# make
# make install
当安装好pcre后,利用pcretest命令来打印pcre的安装情况,一般输出如下:
# pcretest -C
PCRE version 8.38 2015-11-23
Compiled with
8-bit support
UTF-8 support
Unicode properties support
No just-in-time compiler support
Newline sequence is LF
\\R matches all Unicode newlines
Internal link size = 2
POSIX malloc threshold = 10
Parentheses nest limit = 250
Default match limit = 10000000
Default recursion depth limit = 10000000
Match recursion uses stack
参考:http://www.cnblogs.com/pcat/p/5520317.html
以上是关于pcre 不支持 utf 的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Windows 启用 UTF 8 支持 PCRE xampp?
grep: this version of PCRE is not compiled with PCRE_UTF8 support
grep 正则问题 this version of PCRE is compiled without UTF support