我的系统是: win2000, 汉语支持, c++Builder 5.
想显示摄氏温标(在字符串中显示), 用到一个值在 128-256之间的ascII码.
但令人惊讶的是: 这个字符单独能显示, 但一旦和其他的字符组合,则自动
成为一个汉字.我不希望这样.请求帮助!
(这是一个很难的问题吗?请教了好些人都没有得到回答...)
以百分相赠. 谢.
11 个解决方案
#1
在字符前面加一个 ascii=0的字符
#2
128-255 被用于汉字内码;
GBK的内码已包含在ASCII区,就是说某些汉字的后一字节也是33-255.
你想单独显示不可能,显示成什么符号你有要求吗?
GBK的内码已包含在ASCII区,就是说某些汉字的后一字节也是33-255.
你想单独显示不可能,显示成什么符号你有要求吗?
#3
摄氏温标GB汉字中也有:℃,
70℃就是这个符号
70℃就是这个符号
#4
你说的是设施度那个字符?加个\或者用汉字库里的呀
#5
谢谢各位的回答, 情况如下:
To jadedrip: 因为要显示在控件的标题处, 所以只能是"一个!"字符串,因此你的方法
不能使用.
To BCB: 是的,我想应该是解释...系统默认的字符集在"做好事".叫人气恼.我想也许
这的确实不可能.
To BCB & choiselee: 我使用了℃符号. 在debug中发现这个符号仍然是两个字节!因此
在英文98中, 显示为乱码!(win2000 与 中文 98下正常。)
请问怎样才能在中文与英文98,2k 下均有正常显示?
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;
下是乱码了。你是想两者皆顾!哪改用UNICODE内码体系,
WINDOWS 能支持两种内码体系,DELPHI 与C++BUILDER
自然也能支持两种内码,WideString 就是Unicode内码;
汉字与ASCII 不会打架了,每个字符都是双字节;
ASCii 字符的后一字节总是0,前一个字节是ascii;
#7
你这个怪符号内码值是多少,我人工替你
构成一个Unicode 串试试!
构成一个Unicode 串试试!
#8
To,
摄氏度单位的左上角的那个小句号的值: 176
win98下不支持unicode... 真的有办法吗?
摄氏度单位的左上角的那个小句号的值: 176
win98下不支持unicode... 真的有办法吗?
#9
win98能支持Unicode, 真显示出一个小园圈,但无 C,
有希望!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
wchar_t c=176;
WideString w(c);
ShowMessage(w);
}
有希望!
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.
你想单独显示不可能,显示成什么符号你有要求吗?
GBK的内码已包含在ASCII区,就是说某些汉字的后一字节也是33-255.
你想单独显示不可能,显示成什么符号你有要求吗?
#3
摄氏温标GB汉字中也有:℃,
70℃就是这个符号
70℃就是这个符号
#4
你说的是设施度那个字符?加个\或者用汉字库里的呀
#5
谢谢各位的回答, 情况如下:
To jadedrip: 因为要显示在控件的标题处, 所以只能是"一个!"字符串,因此你的方法
不能使用.
To BCB: 是的,我想应该是解释...系统默认的字符集在"做好事".叫人气恼.我想也许
这的确实不可能.
To BCB & choiselee: 我使用了℃符号. 在debug中发现这个符号仍然是两个字节!因此
在英文98中, 显示为乱码!(win2000 与 中文 98下正常。)
请问怎样才能在中文与英文98,2k 下均有正常显示?
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;
下是乱码了。你是想两者皆顾!哪改用UNICODE内码体系,
WINDOWS 能支持两种内码体系,DELPHI 与C++BUILDER
自然也能支持两种内码,WideString 就是Unicode内码;
汉字与ASCII 不会打架了,每个字符都是双字节;
ASCii 字符的后一字节总是0,前一个字节是ascii;
#7
你这个怪符号内码值是多少,我人工替你
构成一个Unicode 串试试!
构成一个Unicode 串试试!
#8
To,
摄氏度单位的左上角的那个小句号的值: 176
win98下不支持unicode... 真的有办法吗?
摄氏度单位的左上角的那个小句号的值: 176
win98下不支持unicode... 真的有办法吗?
#9
win98能支持Unicode, 真显示出一个小园圈,但无 C,
有希望!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
wchar_t c=176;
WideString w(c);
ShowMessage(w);
}
有希望!
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一阵狂吻...
本来决定以身相许, 但可惜我是男的...
所以就只好以分相赠了!
本来决定以身相许, 但可惜我是男的...
所以就只好以分相赠了!