私の仕事でSharepointを使用していますが、文字幅が0の文字である"\u200b"がSharepointから何かをコピーした後にファイル名とドキュメントに入ります。Python:文字「 u200b」がpy2appでフリーズした後に認識されない
クリップボードを監視し、内容をrepr()
で表示するPython 3とPyQt5でアプリを作って、その文字がクリップボードのコンテンツに見つかるとシステム通知を表示します。
Windowsでは正常に動作し、凍結する前にEl Capitanで正常に動作しますが、py2appで凍結した後、私のプログラムは「?」と表示します。 "\ u200b"ではなく、通知が表示されません。私はバーチャルマシン(VirtualBox)でテストしています。
py2appでこれを修正する方法はありますか?他のフリーズプログラムを使用している場合、コードを変更する必要がありますか?
EDIT:日本語のテキストファイルがあり、同じことが起こったことがわかりました。フリーズする前に日本語の文字が正しく表示されますが、フリーズした後は「?」に変換されます。クリップボードを監視
スレッド:アプリで
recent_value = ""
while True:
tmp_value = pyperclip.paste()
if tmp_value != recent_value:
recent_value = tmp_value
self.clip.emit(recent_value)
time.sleep(0.1)
検証:
@QtCore.pyqtSlot(str)
def clipboard_slot(self, value):
real_value = repr(value)[1:][:-1]
# validation
if "\\u200b" in real_value:
self.tray_icon.showMessage("Warning", "Invalid character detected in clipboard contents.")