初学者问题: 怎样显示范围在(128-256)ascII码?

时间:2023-01-07 16:25:55
各位高手:

我的系统是: win2000, 汉语支持, c++Builder 5.
想显示摄氏温标(在字符串中显示), 用到一个值在 128-256之间的ascII码.

但令人惊讶的是: 这个字符单独能显示, 但一旦和其他的字符组合,则自动
成为一个汉字.我不希望这样.请求帮助!
(这是一个很难的问题吗?请教了好些人都没有得到回答...)

以百分相赠. 谢.

11 个解决方案

#1


在字符前面加一个 ascii=0的字符 

#2


128-255 被用于汉字内码;
GBK的内码已包含在ASCII区,就是说某些汉字的后一字节也是33-255.
你想单独显示不可能,显示成什么符号你有要求吗?


 





#3


摄氏温标GB汉字中也有:℃,
70℃就是这个符号

#4


你说的是设施度那个字符?加个\或者用汉字库里的呀

#5


谢谢各位的回答, 情况如下:
To jadedrip: 因为要显示在控件的标题处, 所以只能是"一个!"字符串,因此你的方法
             不能使用.
To BCB:  是的,我想应该是解释...系统默认的字符集在"做好事".叫人气恼.我想也许
         这的确实不可能.
To BCB & choiselee: 我使用了℃符号. 在debug中发现这个符号仍然是两个字节!因此
                    在英文98中, 显示为乱码!(win2000 与 中文 98下正常。)

请问怎样才能在中文与英文98,2k 下均有正常显示?

#6


这个℃,在汉字区位码1区,肯定是双字节,在英文WINdows
下是乱码了。你是想两者皆顾!哪改用UNICODE内码体系,
WINDOWS 能支持两种内码体系,DELPHI 与C++BUILDER
自然也能支持两种内码,WideString 就是Unicode内码;
汉字与ASCII 不会打架了,每个字符都是双字节;
ASCii 字符的后一字节总是0,前一个字节是ascii;



#7


你这个怪符号内码值是多少,我人工替你
构成一个Unicode 串试试!

#8


To,

摄氏度单位的左上角的那个小句号的值:  176

win98下不支持unicode... 真的有办法吗?

#9


win98能支持Unicode, 真显示出一个小园圈,但无 C,
有希望!

void __fastcall TForm1::Button1Click(TObject *Sender)
{
      wchar_t c=176;
      WideString w(c);
      ShowMessage(w);
}

#10



跟汉字一点也不搞混;
设计时没办法用了,运行时可以用,用程序将送到你的标题上,
不就行了?!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
      wchar_t c=176;
      WideString w(c);
      ShowMessage("现在20"+w+"不热");
}

#11


azhan 抱住BCB一阵狂吻...

本来决定以身相许, 但可惜我是男的...
所以就只好以分相赠了!

#1


在字符前面加一个 ascii=0的字符 

#2


128-255 被用于汉字内码;
GBK的内码已包含在ASCII区,就是说某些汉字的后一字节也是33-255.
你想单独显示不可能,显示成什么符号你有要求吗?


 





#3


摄氏温标GB汉字中也有:℃,
70℃就是这个符号

#4


你说的是设施度那个字符?加个\或者用汉字库里的呀

#5


谢谢各位的回答, 情况如下:
To jadedrip: 因为要显示在控件的标题处, 所以只能是"一个!"字符串,因此你的方法
             不能使用.
To BCB:  是的,我想应该是解释...系统默认的字符集在"做好事".叫人气恼.我想也许
         这的确实不可能.
To BCB & choiselee: 我使用了℃符号. 在debug中发现这个符号仍然是两个字节!因此
                    在英文98中, 显示为乱码!(win2000 与 中文 98下正常。)

请问怎样才能在中文与英文98,2k 下均有正常显示?

#6


这个℃,在汉字区位码1区,肯定是双字节,在英文WINdows
下是乱码了。你是想两者皆顾!哪改用UNICODE内码体系,
WINDOWS 能支持两种内码体系,DELPHI 与C++BUILDER
自然也能支持两种内码,WideString 就是Unicode内码;
汉字与ASCII 不会打架了,每个字符都是双字节;
ASCii 字符的后一字节总是0,前一个字节是ascii;



#7


你这个怪符号内码值是多少,我人工替你
构成一个Unicode 串试试!

#8


To,

摄氏度单位的左上角的那个小句号的值:  176

win98下不支持unicode... 真的有办法吗?

#9


win98能支持Unicode, 真显示出一个小园圈,但无 C,
有希望!

void __fastcall TForm1::Button1Click(TObject *Sender)
{
      wchar_t c=176;
      WideString w(c);
      ShowMessage(w);
}

#10



跟汉字一点也不搞混;
设计时没办法用了,运行时可以用,用程序将送到你的标题上,
不就行了?!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
      wchar_t c=176;
      WideString w(c);
      ShowMessage("现在20"+w+"不热");
}

#11


azhan 抱住BCB一阵狂吻...

本来决定以身相许, 但可惜我是男的...
所以就只好以分相赠了!