Китайские символы могут отображаться и вводиться на моем LXTerminal.Как ввести китайские символы в php cli?
[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 оболочки)
китайские иероглифы исчезли, когда нажать клавишу ввода.
Это означает, что китайские символы могут отображаться, но не могут быть введены в режиме php cli.
Как заставить китайские символы вводить в режиме php cli?
И это подтвержденный факт, что китайские символы не могут быть вставлены в php cli.
Возможно, некоторые атрибуты mbstring будут отредактированы в /etc/php5/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]:/Главная/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.CHINESE символы на 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 в моей VirtualBox с помощью команды:
./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/x86_64-linux-gnu/libreadline.so.6.3, как заставить его работать на моей php5?
Почему ваша команда называется на китайском? – Justinas
Я хочу проверить, что китайские символы могут быть введены и отображены на моем LXTerminal. –
Я не понимаю, как факт, что ваша оболочка или терминал преобразует ваши входы в китайский язык, имеет какое-то отношение к PHP? PHP не обрабатывает ввод на терминале, ваша оболочка. – AntoineB