Subject: bug#21003: 24.5; IPython Inferior unicode issue

From: Semio <[email-masked]>
Date: Tue, 07 Jul 2015 22:44:17 +0800

1. open a .py file or enable python mode
2. run the interactive shell with ```M-x python-shell-switch-to-shell```
3. use ipython(/usr/local/bin/ipython -i) for the inferior python.
4. in the inferior python buffer, eval a string contains unicode chars,
for example:

> In [19]: u'测试' # Chinese char
> Out[20]: u'\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd'=20

> In [21]: test = u'再次测试'
> In [25]: test
> Out[26]: u'\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u=
fffd\ufffd'

No matter what the string is, the output will be a list of '\ufffd',
which is wrong.

In GNU Emacs 24.5.1 (x86_64-apple-darwin13.4.0, NS apple-appkit-1265.21)
 of 2015-04-11 on builder10-9.porkrind.org
Windowing system distributor `Apple', version 10.3.1348
Configured using:
 `configure --with-ns '--enable-locallisppath=/Library/Application
 Support/Emacs/${version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp''

Important settings:
  locale-coding-system: utf-8-unix

Major mode: Inferior Python

Minor modes in effect:
  company-mode: t
  clean-aindent-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  helm-descbinds-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  compilation-shell-minor-mode: t
  projectile-global-mode: t
  projectile-mode: t
  recentf-mode: t
  window-numbering-mode: t
  volatile-highlights-mode: t
  global-vi-tilde-fringe-mode: t
  vi-tilde-fringe-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-page-break-lines-mode: t
  ido-vertical-mode: t
  guide-key-mode: t
  popwin-mode: t
  flx-ido-mode: t
  global-fasd-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  global-evil-search-highlight-persist: t
  evil-search-highlight-persist: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-mode: t
  evil-jumper-mode: t
  evil-escape-mode: t
  global-anzu-mode: t
  anzu-mode: t
  eval-sexp-fu-flash-mode: t
  savehist-mode: t
  global-hl-line-mode: t
  xterm-mouse-mode: t
  winner-mode: t
  global-auto-revert-mode: t
  evil-leader-mode: t
  evil-mode: t
  evil-local-mode: t
  override-global-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
[yas] Prepared just-in-time loading for ~/.emacs.d/snippets
[yas] Reloaded everything (snippets will load just-in-time)....
Blocking call to accept-process-output with quit inhibited!! [3 times]
Make dedicated process? (y or n) y
Making python-shell-interpreter local to *Python[/Users/semio/src/quant/scrapy/cnstockdata/build.py]* while let-bound!
Making python-shell-interpreter-args local to *Python[/Users/semio/src/quant/scrapy/cnstockdata/build.py]* while let-bound!
Sent python-shell-completion-setup-code
Sent python-ffap-setup-code
Sent python-eldoc-setup-code
ad-handle-definition: `eval-defun' got redefined

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mail-utils helm-command helm-elisp
helm-eval edebug company-capf align tabify face-remap evil-iedit-state
iedit iedit-lib company-files company-keywords company-etags
company-gtags company-template company-dabbrev-code company-dabbrev
company-anaconda company anaconda-mode f json-rpc eldoc flycheck hi-lock
hideshow goto-addr auto-highlight-symbol clean-aindent-mode
highlight-numbers parent-mode rainbow-delimiters rainbow-identifiers
yasnippet help-mode smartparens-python python json helm-descbinds
helm-mode helm-files image-dired tramp tramp-compat tramp-loaddefs
trampver shell pcomplete format-spec dired-x dired-aux ffap helm-buffers
helm-elscreen helm-tags helm-bookmark helm-adaptive helm-info bookmark
helm-locate helm-help helm-match-plugin helm-grep helm-regexp
helm-plugin grep helm-external helm-net browse-url xml url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse auth-source gnus-util mm-util mail-prsvr
password-cache url-vars mailcap helm-utils dired compile helm
helm-source eieio eieio-core flyspell ispell projectile ibuf-ext ibuffer
recentf tree-widget disp-table server solarized py-yapf window-numbering
etags volatile-highlights vi-tilde-fringe undo-tree diff toc-org ert
find-func ewoc debug smooth-scrolling smartparens-config powerline
powerline-separators color powerline-themes page-break-lines
ido-vertical-mode guide-key-tip pos-tip guide-key s ucs-normalize popwin
flx-ido flx fasd grizzl exec-path-from-shell evil-surround
evil-search-highlight-persist evil-numbers evil-lisp-state smartparens
evil-jumper evil-indent-textobject evil-exchange evil-escape evil-args
evil-anzu anzu mule-util warnings info eval-sexp-fu rx highlight
frame-fns avoid diminish adaptive-wrap evil-evilified-state finder-inf
ielm easymenu pp comint ansi-color savehist saveplace hl-line xt-mouse
winner autorevert filenotify ido evil-leader evil evil-integration
evil-maps evil-commands evil-command-window evil-types evil-search
evil-ex evil-macros evil-repeat evil-states evil-core byte-opt
evil-common windmove thingatpt rect evil-digraphs evil-vars ring
use-package bytecomp byte-compile cconv bind-key easy-mmode dash
cl-extra vc-git wid-edit leuven-theme core-configuration-layer
core-dotspacemacs package epg-config ht cl-macs cl gv core-spacemacs
derived edmacro kmacro cl-loaddefs cl-lib core-use-package-ext
core-evilify-keymap core-micro-state corelv core-toggle
core-fonts-support pcase core-spacemacs-buffer core-funcs
core-themes-support advice help-fns core-auto-completion
core-release-management core-emacs-backports subr-x time-date tooltip
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
cocoa ns multi-tty emacs)

Memory information:
((conses 16 671203 236755)
 (symbols 48 49169 96)
 (miscs 40 323 772)
 (strings 32 101305 99668)
 (string-bytes 1 3002714)
 (vectors 16 63389)
 (vector-slots 8 1118596 90209)
 (floats 8 651 1441)
 (intervals 56 3426 98)
 (buffers 960 21))