sigaofeng 发表于 2016-4-29 14:49:39

PMON输入汉字的问题

本帖最后由 sigaofeng 于 2016-4-29 15:07 编辑

在PMON中输入汉字
在PMON中输入汉字"大"
PMON回显了


输入"的"
PMON回显了


sigaofeng 发表于 2016-5-3 08:25:04

在pmon的main函数中循环执行get_cmd(),do_cmd();get_cmd()函数调用get_line()函数,在get_line()中调用getchar();我们显示getchar()得到的内容,把getchar()得到的内容通过printf()打印到屏幕上

sigaofeng 发表于 2016-5-3 08:39:23

本帖最后由 sigaofeng 于 2016-5-3 13:15 编辑

pmon的编译见帖子http://www.openloongson.org/foru ... =208&extra=page%3D1

烧入nor flash,运行龙芯1c开源板
输入"大" pmon在回显 65e24$27'       "大"的utf-8编码是E5 A4 A7 每个字节的高位被pmon处理后置为0后成了 65 24 27

sigaofeng 发表于 2016-5-3 08:51:18

本帖最后由 sigaofeng 于 2016-5-3 10:43 编辑

我们找到处理的函数(scandevs()),更改后即可回显汉字同时把pmon/lib/libc/fgetc.c中char关键字更改为unsigned char

ratking 发表于 2016-5-3 09:46:32

果然厉害!

sigaofeng 发表于 2016-5-3 14:18:14

汉字的输出问题

把getchar()得到的内容加入printf("在取得命令")语句,打印一串汉字到屏幕上

sigaofeng 发表于 2016-5-3 14:49:22

本帖最后由 sigaofeng 于 2016-5-3 14:53 编辑

什么情况乱码???


原来gcc编译时在makefile.inc中使用了charset=GB2312选项,更改为charset=UTF-8就行了

汉字编码问题见,字符编码的前世今生-腾讯大讲堂
http://djt.qq.com/article/view/658

sigaofeng 发表于 2016-5-3 14:54:36

makefile.inc

sigaofeng 发表于 2016-5-5 10:06:30

跟踪汉字命令进入get_cmd(),和get_line()

sigaofeng 发表于 2016-5-5 10:23:03

跟踪get_cmd()

在get_cmd()函数中的get_line(p,1)语句后加入printf("%s",p);

显示汉字命令能够进入get_cmd()函数,并能进入历史命令列表
页: [1] 2
查看完整版本: PMON输入汉字的问题