求助:关于vc6升级到VS2010后Unicode菜单显示日韩越文乱码问题

时间:2022-08-27 19:59:47
上次发了个类似求助帖:
http://topic.csdn.net/u/20110804/10/9895221b-1da0-4cab-9a22-17d56aed298a.html
在jackyjkchen的帮助下解决了“对话框”日韩越文显示乱码问题。本来想当然就以为菜单文字也能正确显示,最近把对话框修改完后修改菜单时竟发现菜单显示乱码。

问题描述:
用VC6.0随便创建一个多文档工程,用VS2010打开后更改为“使用Unicode字符集”,用“高级保存”把.rc文件保存为“Uncode - 代码页 1200”方式后,对话框能正确显示日韩越文,但菜单显示却是乱码,不知什么原因

22 个解决方案

#1


vs2010的菜单好像使用了新的技术来处理了,有可能是不兼容问题。你用vs2010建一个相同的工程,看看有没有问题,这样就知道问题到底出在哪儿了。

#2


没安装所需字体?

#3


因为menu用的是drawtext

#4


引用 1 楼 xin_wu_hen 的回复:
vs2010的菜单好像使用了新的技术来处理了,有可能是不兼容问题。你用vs2010建一个相同的工程,看看有没有问题,这样就知道问题到底出在哪儿了。

用vs2010建一个相同的工程是没问题的

#5


引用 3 楼 tajon1226 的回复:
因为menu用的是drawtext

怎么解决?

#6


重绘menu,用textout。应该有更简单的方法

#7


引用 2 楼 zhao4zhong1 的回复:
没安装所需字体?

应该与字体无关,因为用vs2010建一个相同的工程是没问题的。

#8


有兴趣的童靴可修改菜单为越文“ÀI LIỆU”,运行后显示是乱码,而VS2010创建的工程却可以正常显示

#9


你把rc编码改成unicode,什么语言都可以显示。

#10


BEGIN
MENUITEM "撤消(&U)\tCtrl+Z",               ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "剪切(&T)\tCtrl+X",                ID_EDIT_CUT
MENUITEM "复制(&C)\tCtrl+C",               ID_EDIT_COPY
MENUITEM "プログラム",              ID_EDIT_PASTE END
POPUP "查看(&V)"
BEGIN
MENUITEM "프로그램",                    ID_VIEW_TOOLBAR MENUITEM "โปรแกรม",                 ID_VIEW_STATUS_BAR END
POPUP "帮助(&H)"
BEGIN
MENUITEM "Chương trình",          ID_APP_ABOUT
END

日语
韩语
泰语
越南语

#11


汗,加颜色,格式乱了,反正就那回事。

#12


引用 9 楼 tajon1226 的回复:
你把rc编码改成unicode,什么语言都可以显示。

你测试的是用VC6.0转换成VS2010的工程吗?我已经把.rc保存为“Uncode - 代码页 1200”方式了,在资源文件里显示是正确的,但就是运行程序后显示乱码。

#13


这太难了,vs2010卡得要死,没装过它。

#14


楼主可以试试在资源编辑器里,把乱掉的字删除重新输入一遍

#15


引用 14 楼 jackyjkchen 的回复:
楼主可以试试在资源编辑器里,把乱掉的字删除重新输入一遍

资源编辑器里文字显示是正确的,只在程序运行后菜单才显示乱码

#16


Uncode - 代码页 1200,这样肯定不对。请保存成UTF-8 带签名

#17


引用 16 楼 bokutake 的回复:
Uncode - 代码页 1200,这样肯定不对。请保存成UTF-8 带签名

Uncode - 代码页 1200,起码对话框文字是正确的,但保存成“UTF-8 带签名”会出现编译错误:error RC2135:file not found:Visual。楼上可以创建个VC6工程升级到VS2010试试

#18


引用 15 楼 paul_hyg 的回复:
引用 14 楼 jackyjkchen 的回复:
楼主可以试试在资源编辑器里,把乱掉的字删除重新输入一遍

资源编辑器里文字显示是正确的,只在程序运行后菜单才显示乱码

正确的也重新输入一遍

#19


不懂 没遇到过 

#20


引用 18 楼 jackyjkchen 的回复:
引用 15 楼 paul_hyg 的回复:
正确的也重新输入一遍

恩,重新输入过了,还是没用。
还发现个怪现象:在越文前面后后面加一个中文字或中文标点符号运行后显示就正确了,如:“你TÀI LIỆU”、“TÀI LIỆU,”

#21


在菜单输入日文“プログラム”或韩文“프로그램”,运行也能正确显示,就越文不行。但VS2010直接创建的工程越文也是没问题的,太怪异了!

#22


嘿嘿,实在想vc6.0转高版本,就重绘menu,这是一定可以的。
我实验了,vs2008就没问题,从vc6.0转vs2008也是越南语部分乱码。

#1


vs2010的菜单好像使用了新的技术来处理了,有可能是不兼容问题。你用vs2010建一个相同的工程,看看有没有问题,这样就知道问题到底出在哪儿了。

#2


没安装所需字体?

#3


因为menu用的是drawtext

#4


引用 1 楼 xin_wu_hen 的回复:
vs2010的菜单好像使用了新的技术来处理了,有可能是不兼容问题。你用vs2010建一个相同的工程,看看有没有问题,这样就知道问题到底出在哪儿了。

用vs2010建一个相同的工程是没问题的

#5


引用 3 楼 tajon1226 的回复:
因为menu用的是drawtext

怎么解决?

#6


重绘menu,用textout。应该有更简单的方法

#7


引用 2 楼 zhao4zhong1 的回复:
没安装所需字体?

应该与字体无关,因为用vs2010建一个相同的工程是没问题的。

#8


有兴趣的童靴可修改菜单为越文“ÀI LIỆU”,运行后显示是乱码,而VS2010创建的工程却可以正常显示

#9


你把rc编码改成unicode,什么语言都可以显示。

#10


BEGIN
MENUITEM "撤消(&U)\tCtrl+Z",               ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "剪切(&T)\tCtrl+X",                ID_EDIT_CUT
MENUITEM "复制(&C)\tCtrl+C",               ID_EDIT_COPY
MENUITEM "プログラム",              ID_EDIT_PASTE END
POPUP "查看(&V)"
BEGIN
MENUITEM "프로그램",                    ID_VIEW_TOOLBAR MENUITEM "โปรแกรม",                 ID_VIEW_STATUS_BAR END
POPUP "帮助(&H)"
BEGIN
MENUITEM "Chương trình",          ID_APP_ABOUT
END

日语
韩语
泰语
越南语

#11


汗,加颜色,格式乱了,反正就那回事。

#12


引用 9 楼 tajon1226 的回复:
你把rc编码改成unicode,什么语言都可以显示。

你测试的是用VC6.0转换成VS2010的工程吗?我已经把.rc保存为“Uncode - 代码页 1200”方式了,在资源文件里显示是正确的,但就是运行程序后显示乱码。

#13


这太难了,vs2010卡得要死,没装过它。

#14


楼主可以试试在资源编辑器里,把乱掉的字删除重新输入一遍

#15


引用 14 楼 jackyjkchen 的回复:
楼主可以试试在资源编辑器里,把乱掉的字删除重新输入一遍

资源编辑器里文字显示是正确的,只在程序运行后菜单才显示乱码

#16


Uncode - 代码页 1200,这样肯定不对。请保存成UTF-8 带签名

#17


引用 16 楼 bokutake 的回复:
Uncode - 代码页 1200,这样肯定不对。请保存成UTF-8 带签名

Uncode - 代码页 1200,起码对话框文字是正确的,但保存成“UTF-8 带签名”会出现编译错误:error RC2135:file not found:Visual。楼上可以创建个VC6工程升级到VS2010试试

#18


引用 15 楼 paul_hyg 的回复:
引用 14 楼 jackyjkchen 的回复:
楼主可以试试在资源编辑器里,把乱掉的字删除重新输入一遍

资源编辑器里文字显示是正确的,只在程序运行后菜单才显示乱码

正确的也重新输入一遍

#19


不懂 没遇到过 

#20


引用 18 楼 jackyjkchen 的回复:
引用 15 楼 paul_hyg 的回复:
正确的也重新输入一遍

恩,重新输入过了,还是没用。
还发现个怪现象:在越文前面后后面加一个中文字或中文标点符号运行后显示就正确了,如:“你TÀI LIỆU”、“TÀI LIỆU,”

#21


在菜单输入日文“プログラム”或韩文“프로그램”,运行也能正确显示,就越文不行。但VS2010直接创建的工程越文也是没问题的,太怪异了!

#22


嘿嘿,实在想vc6.0转高版本,就重绘menu,这是一定可以的。
我实验了,vs2008就没问题,从vc6.0转vs2008也是越南语部分乱码。