在一个程序中,需要在英文环境下显示经纬度,但度的符号"°"一到了英文下就是乱码(不论全角还是半角),不知道大家是怎么解决的,恳请高手指导!!

解决方案 »

  1.   

    应该用的是GBK的编码,所以到了不支持GBK的系统下面就是乱码了~建议用图像来表示吧
      

  2.   

    (1)因为度,分,秒要显示在一个编辑框中,不能用图像。
    (2)怎么用UNICODE,能否说的详细点,比如说,现在是这样的,我在中文系统下在记事本里输入了“°”,到英文系统下打开就是乱码。我又试了,在中文环境,使用Ultraedit,点击“file\conversions\ascii to unicode”将文件转为unicode形式,但在英文下,仍然是乱码。
    请问还有别的方面吗?
      

  3.   

    中文环境下,在记事本中输入“°”,然后选择"另存为",然后弹出对话框,此对话框下面有"编码"选择一项,你可以选择unicode,然后再切换到英文系统打开就不会是乱码了.
      

  4.   

    非常感谢大家帮助,特别是jjkezl.
    jjkezl的方法确实可以解决文件中的"°"的乱码问题.我的情况是在Vc程序里面,是在一个对话框中有一个编辑框控件,需要在这个控件中显示经纬度.比如调用:m_degree.SetWindowText("123°12'34\"");显示时仍然是乱码。不知道有没有什么可行的方法,请大家再帮忙解决一下。
      

  5.   

    在你的stdafx的第一行增加:
    #define UNICODE
    #define _UNICODE
      

  6.   


    当然,看你的代码
    m_degree.SetWindowText("123°12'34\"");
    就知道你根本还不懂得用unicode,所以你的工程增加那2行后会有无数个编译错误!建议你先写个小程序测试,注意遇到字符串常量时这样写:
    m_degree.SetWindowText(_T("123°12'34\""));定义变量时也要注意:
    char szBuf[] ->TCHAR szBuf[]
    LPCSTR -> LPCTSTR
    LPSTR -> LPTSTRstrcpy -> _tcscpy
    strcat -> _tcscat..
    ..
    ..
    ..
      

  7.   

    或者你可以先在英文系统下面把这个符号给弄出来,然后记下编码,再用CodePage判断是什么系统决定用什么编码~
      

  8.   

    jun_01,说得太好了,用你的方法解决啦,非常感谢,真的非常非常感谢!也谢谢大家。