簡體   English   中英

用 Print 替換 python 字符串中的字符 - 奇數 output

[英]Replacing a character in a python string - odd output with Print

我正在嘗試編寫一些代碼,允許我替換列表中的字符,其中 position 由 integer 定義。 我有以下代碼

# -*- coding: utf-8 -*-
a = 47
text = 'xxxxxxxxxx xxxxx ╟───┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼───╢ xx'
new = list(text)
new[a] = "x"
print ''.join(new)

但是當我運行它時,它會打印出來

xxxxxxxxxx xxxxx ╟───┼────┼x▒▒────┼────┼────┼────┼────┼────┼────┼─ ────┼────┼────╢ xx

代替

xxxxxxxxxx xxxxx ╟───┼────┼x──┼────┼────┼────┼────┼────┼────┼──── ┼────┼────╢ xx

換句話說,它在打印的字符串中包含“▒▒”。 無論列表中的哪個字符被替換,它都會添加額外的字符。 我究竟做錯了什么?

我正在使用膩子通過 SSH 連接的樹莓派上運行它。

由於您對文本使用 utf-8 編碼(使用非 ascii 字符),您需要將其轉換為 Unicode 字符串 Python 在更改為每個列表之前將其拆分為多個字節 2 因此

更好的是,您可以直接將文本定義為 unicode 字符串:

text = u'xxxxxxxxxx xxxxx╟───┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼───╢ xx'

** 在某些情況下,即使是 unicode 字符串也會將字符拆分為 1 個以上的元素,但這不會影響您,因為您在 BMP 范圍內。 如果您想了解更多信息,請閱讀有關UCS-2 與 UCS-4 表示的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM