有天学长问我能不能搞个汉字转Unicode码(学长在搞字体),我就上班摸鱼学了下字符转unicode(就两行),保持着良好的态度我顺便在摸鱼的时候学习了下pyqt5怎么用,然后摸鱼写好了程序.
汉字转unicode码代码如下
outText = text.encode("unicode_escape")
outText = outText.decode("utf-8")
unicode码转汉字代码如下
unicode = unicode.encode('utf-8')
unicode = unicode.decode("unicode_escape")
这个转换我参考的是链接1
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 7 11:43:34 2018
@author: bmi
"""
import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QLineEdit,
QTextEdit, QGridLayout, QApplication, QPushButton)
class Gui(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
input = QLabel("输入")
output = QLabel("unicode")
fre = QLabel("字符频率")
self.inputEdit = QTextEdit()
self.outputEdit = QTextEdit()
self.freEdit = QTextEdit()
char2unicodebtn = QPushButton('unicode')
unicode2charbtn = QPushButton('char')
grid = QGridLayout()
grid.setSpacing(5)
grid.addWidget(input, 1, 0)
grid.addWidget(self.inputEdit, 1, 1, 2, 1)
grid.addWidget(output, 3, 0)
grid.addWidget(self.outputEdit, 3, 1, 2, 1)
grid.addWidget(fre, 5, 0)
grid.addWidget(self.freEdit, 5, 1, 2, 1)
grid.addWidget(char2unicodebtn, 6,0)
grid.addWidget(unicode2charbtn, 7,0)
self.setLayout(grid)
char2unicodebtn.clicked.connect(self.Char2Unicode)
unicode2charbtn.clicked.connect(self.Unicode2Char)
self.setGeometry(300, 300, 400, 500)
self.setWindowTitle('unicode(芥末诚专用) by bmi')
self.show()
#汉字转unicode码
def Char2Unicode(self):
text = self.inputEdit.toPlainText()
strlen = len(text)
outText = text.encode("unicode_escape")
outText = outText.decode("utf-8")
outText = outText.replace("\\u", ",$")
self.outputEdit.setText(outText)
dfre = {}#存放单个字符出现频率
for i in range(0, strlen):
dfre[text[i]] = 0
for j in range(0,strlen):
if text[i] == text[j]:
dfre[text[i]] += 1
temp = ''
dchar = {}
for key in dfre.keys():
temp = key
s = temp.encode("unicode_escape")
s = s.decode("utf-8")
s = s.replace("\\u", ",$")
dchar[key] = s
s = "输入字数:%d\n"%(strlen)
for key in dfre.keys():
s += "%s:%d %s\n"%(key,dfre[key],dchar[key])
#self.outputEdit.append("%s"%d[key])
self.freEdit.setText(s)
#unicode码转汉字按钮
def Unicode2Char(self):
text = self.inputEdit.toPlainText()
unicode = text.replace("$", "\\u")
unicode = unicode.encode('utf-8')
unicode = unicode.decode("unicode_escape")
self.outputEdit.setText(unicode)
strlen = len(unicode)
dfre = {}
for i in range(0, strlen):
dfre[unicode[i]] = 0
for j in range(0,strlen):
if unicode[i] == unicode[j]:
dfre[unicode[i]] += 1
s = "输入字数:%d\n"%(strlen)
for key in dfre.keys():
s += "%s:%d\n"%(key,dfre[key])
#self.outputEdit.append("%s"%d[key])
self.freEdit.setText(s)
if __name__ == '__main__':
app = QApplication(sys.argv)
unicodeGui = Gui()
sys.exit(app.exec_())
效果图如下
我发给学长测试了下,发现对扩展B的处理有问题,学长让我把字符频率改成一个按钮,他一次性需要转换的字挺多的,转换存在字符频率会出现卡顿,下次上班的摸鱼的时候再改吧(滑稽)。
参考连接:
连接1:python3 汉字转十六进制unicode
连接2:主页 Archi
连接3:PyQt5图形界面编程(目录)
连接4:Python 的图形界面(GUI)编程?