彻底解决Wine中文显示乱码的设想

Wine、Cedega、CrossOver 等配置

成立个小组来彻底解决Wine乱码问题

支持
553
97%
反对
2
0%
无所谓
17
3%
 
总计票数: 572
blaze1982
帖子: 62
注册时间: 2006-04-20 20:32

Re: 彻底解决Wine中文显示乱码的设想

#31

帖子 blaze1982 » 2009-05-16 11:24

想法不错,支持下
:em11
minoru_harvest
帖子: 83
注册时间: 2008-07-11 11:47

Re: 彻底解决Wine中文显示乱码的设想

#32

帖子 minoru_harvest » 2009-05-29 10:12

顶一下。
一样不怎么懂编程,但希望有高手能来完善wine,毕竟wine是推动linux兼容win的重要工具,兼容性有了也就能更好的去推广linux而不用担心抱怨。
XEdward
帖子: 10
注册时间: 2009-01-26 14:49

Re: 彻底解决Wine中文显示乱码的设想

#33

帖子 XEdward » 2009-05-29 11:23

win公布的API太少了
geny
帖子: 55
注册时间: 2009-04-11 12:37

Re: 彻底解决Wine中文显示乱码的设想

#34

帖子 geny » 2009-05-29 11:58

:em20 :em20

看看 wine 到现在都没有完全解决中文就知道 windows 有多乱了。
看起来 windows 的中、英文居然都不是用一套构架来实现的,真是补丁摞补丁,到最后连原样都找不着了。

:em06
头像
博客教主
帖子: 239
注册时间: 2009-07-27 11:03
来自: 广东 深圳
联系:

Re: 彻底解决Wine中文显示乱码的设想

#35

帖子 博客教主 » 2009-08-14 15:00

纯支持!很少用wine。
jhs00
帖子: 1
注册时间: 2009-08-17 21:39

Re: 彻底解决Wine中文显示乱码的设想

#36

帖子 jhs00 » 2009-08-18 19:18

:em11
顶一下。
希望有高手能来完善wine,推动linux与win的兼容,更好地去推广linux。
cjb2003425
帖子: 22
注册时间: 2009-03-21 0:28

Re: 彻底解决Wine中文显示乱码的设想

#37

帖子 cjb2003425 » 2009-10-15 20:57

非常支持!!!!!!!!
头像
功夫小狗
帖子: 249
注册时间: 2009-08-13 12:15

Re: 彻底解决Wine中文显示乱码的设想

#38

帖子 功夫小狗 » 2009-10-19 17:05

我觉得光有中文显示还是远远不够的,还需要能够完美解决输入问题
头像
carlself
帖子: 49
注册时间: 2008-10-17 17:42

Re: 彻底解决Wine中文显示乱码的设想

#39

帖子 carlself » 2009-11-07 22:35

支持那是一定的,关键是如何落实行动,我菜鸟一个,只能观望了。
霁月难逢,彩云易散。
myfreeway
帖子: 14
注册时间: 2008-05-16 17:41

Re: 彻底解决Wine中文显示乱码的设想

#40

帖子 myfreeway » 2010-05-07 12:23

不是字体的问题,还是和楼猪说的一样,是字符集编码问题。
我手工修改一个文件后,编译(花了很长时间的),安装,最后什么字体都不用管,什么设置也需要,中文已经正常显示,因为wine会去调用系统的字体,并用正确的编码显示。
这个补丁是某位高人写的,比较老的版本了,我对比1.1.43版,还是一样的可用。
只是这个补丁只是针对了中文的,如果能兼容所有国家就好了。wine肯定会接受。

中文补丁:
--- wine.old/dlls/gdi32/freetype.c 2005-01-06 01:12:07.000000000 +0800
+++ wine/dlls/gdi32/freetype.c 2005-01-15 18:30:32.481788272 +0800
@@ -1677,7 +1677,22 @@
if(!strcmpiW(lf.lfFaceName, SymbolW))
lf.lfCharSet = SYMBOL_CHARSET;

- if(!TranslateCharsetInfo((DWORD*)(INT_PTR)lf.lfCharSet, &csi, TCI_SRCCHARSET)) {
+ if( lf.lfCharSet == DEFAULT_CHARSET || lf.lfCharSet == ANSI_CHARSET)
+ {
+ int codepage = 936; /* I'm Chinese. Let me do something selfish. */
+ char *env_wdc = getenv("WINE_DEFAULT_CODEPAGE");
+ if (env_wdc != NULL)
+ {
+ codepage = atoi(env_wdc);
+ }
+ FIXME("Dirty hack. Default and ansi charset is translated to getenv(\"WINE_DEFAULT_CODEPAGE\")\n");
+ if(!TranslateCharsetInfo((DWORD*)(INT_PTR)codepage, &csi, TCI_SRCCODEPAGE)) {
+ FIXME("OMG. Even this dirty hack doesn't work. Let's PRAY.\n");
+ csi.fs.fsCsb[0] = 0;
+ }
+ lf.lfCharSet = csi.ciCharset;
+ }
+ else if(!TranslateCharsetInfo((DWORD*)(INT_PTR)lf.lfCharSet, &csi, TCI_SRCCHARSET)) {
switch(lf.lfCharSet) {
case DEFAULT_CHARSET:
csi.fs.fsCsb[0] = 0;
头像
zhenghuayi
帖子: 5
注册时间: 2011-03-12 10:09

Re: 彻底解决Wine中文显示乱码的设想

#41

帖子 zhenghuayi » 2011-03-14 14:14

对,linux系统肯定要考虑到通用性,不能太狭隘。
03102408
帖子: 75
注册时间: 2011-01-27 10:45

Re: 彻底解决Wine中文显示乱码的设想

#42

帖子 03102408 » 2011-03-18 16:19

楼上的楼上,如何应用补丁?
头像
人间正道-shzsc
帖子: 180
注册时间: 2010-07-30 22:57

Re: 彻底解决Wine中文显示乱码的设想

#43

帖子 人间正道-shzsc » 2011-03-31 15:29

要解决那些写的烂的程序的问题,个人认为只有把它作为一个 workaround 的选项用类似 dll 顶替的方式单独设置,毕竟程序写的烂不是 Wine 的错,犯不着 Wine 默认就去跟着混乱纠结。
头像
人间正道-shzsc
帖子: 180
注册时间: 2010-07-30 22:57

Re: 彻底解决Wine中文显示乱码的设想

#44

帖子 人间正道-shzsc » 2011-03-31 16:05

忽然想到以前在 Win 搞汉化时有这么一个东西,是汉化新世纪的梁利锋大侠在 n 年前用汇编语言写的一个所谓“非标准字体”的展示程序,主要针对的是 CreateFontA、CreateFontIndirectA 和 GetStockObject 三个函数,这个 exe 用 Wine 跑的时候(在字体替换和字体链接完全设置得当的前提下)只有 GetStockObject 的后四行是不乱码的,而在 win 下区域设置正确且不用 GDI++/MacType 的时候所有的行都不乱码,只存在一些中文字有点难看的问题。

[注:我用的 Wine 是一直在用 PPA 源更新的 1.3]

可惜现在貌似很难联系到梁利锋本人;不过好像不少在 Win 下搞汉化的老前辈对这几个函数都比较熟悉的,不知道他们愿不愿意帮忙……
screenshot1.png
fyl6269
帖子: 9
注册时间: 2011-10-18 20:39

Re: 彻底解决Wine中文显示乱码的设想

#45

帖子 fyl6269 » 2011-10-23 20:50

顶起!!!
回复