Китайские символы могут отображаться и вводиться на моем LXTerminal.
[email protected]:/home/debian8# 中文 \\now to input chinese characters on my LXTerminal,it means chinese characters can be inputted.
bash: 中文: command not found \\ bash react the chinese characters on my LXTerminal,it means chinese characters can be displayed.
Китайские символы могут быть введены и отображены на моей оболочке python.
Теперь позвольте войти в php cli (или сказать php shell)
Китайские символы исчезли, когда нажмите кнопку ввода.
это означает, что китайские символы могут отображаться, но не могут быть введены в режиме php cli.
Как заставить китайские символы вводить в режиме php cli?
И это подтвержденный факт, что китайские символы не могут быть вставлены в php cli тоже.
Может быть, некоторые атрибуты mbstring будут отредактированы в /etc/php 5/cli/php.ini?
Спасибо bwoebi. Три факта добавлены, чтобы продолжить мои исследования.
1. Версии libreadline и libedit.
[email protected]:/home/debian8# find / -name 'libreadline*'
/lib/x86_64-linux-gnu/libreadline.so.6.3
/lib/x86_64-linux-gnu/libreadline.so.6
[email protected]:/home/debian8# find / -name 'libedit*'
/usr/lib/x86_64-linux-gnu/libedit.so.2
/usr/lib/x86_64-linux-gnu/libedit.so.2.0.51
/usr/share/lintian/overrides/libedit2
[email protected]:/home/debian8 # ldd "$ (который php)"
linux-vdso.so.1 (0x00007ffd35e5c000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007ff98ac68000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff98aa4d000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff98a836000)
libonig.so.2 => /usr/lib/x86_64-linux-gnu/libonig.so.2 (0x00007ff98a5cc000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007ff98a1d0000)
libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007ff989f6f000)
libdb-5.3.so => /usr/lib/x86_64-linux-gnu/libdb-5.3.so (0x00007ff989bae000)
libqdbm.so.14 => /usr/lib/libqdbm.so.14 (0x00007ff989961000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007ff989751000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ff9894e3000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff9892db000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff988fda000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff988dd6000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007ff988bbe000)
libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007ff988857000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007ff98860c000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007ff988338000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007ff988107000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007ff987f03000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff987b58000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff98793b000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff98ae9f000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007ff987718000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007ff98750c000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007ff987308000)
3.Китайские символы на php7 -a
php7 был установлен как
http://www.tecmint.com/install-and-compile-php-7-on-centos-7-and-debian-8/
Китайские символы могут отображаться и вводиться на php7 -a
.
Появилось новое открытие!
Это библиотека readline на php7.
php7 -i |grep Readline
Readline Support => enabled
Readline library => 6.3
Это оболочка EditLine на php5.
php -i |grep Readline
Readline Support => enabled
Readline library => EditLine wrapper
Проблема заключается в полуразрешенном состоянии.
Как заставить php5 использовать библиотеку Readline 6.3, как php7?
Я не хочу снова компилировать свой php5, просто чтобы изменить библиотеку?
Сегодня я скомпилирую php5 в своем виртуальном боксе с помощью команды:
./configure \
--prefix=/usr/local/php5.6 \
--with-config-file-path=/usr/local/php5.6/etc \
--with-readline
Китайские символы могут вводиться и отображаться в интерактивном режиме php -a
.
Неразумно удалять текущий php5 и скомпилировать все с самого начала.
find / -name 'readline.so*'
/usr/lib/php5/20131226/readline.so
/usr/lib/x86_64-linux-gnu/libreadline.so
/usr/lib/x86_64-linux-gnu/ruby/2.1.0/readline.so
/usr/lib/x86_64-linux-gnu/libguilereadline-v-18.so.18
/usr/lib/x86_64-linux-gnu/libguilereadline-v-18.so
/usr/lib/x86_64-linux-gnu/libguilereadline-v-18.so.18.0.0
/usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so
/lib/x86_64-linux-gnu/libreadline.so.6.3
/lib/x86_64-linux-gnu/libreadline.so.6
Возможно, чтобы включить /lib/x 86_64-linux-gnu/libreadline.so.6.3, как заставить его работать для моего php5?