sqlserver2012中char(2)乱码问题

rebirthtiger 2016-05-17 05:21:18
1、win7下sqlserver2008数据库执行sql语句select char(3); ,结果如图


2、win7或者win10下sqlserver2012数据库执行sql语句select char(3); 结果如图:



3、win10下的记事本打开也不支持char(3)显示也是方框,在win7下记事本中char(3)显示正常。都是ansi编码。

4、请教大家有知道原因的吗?
...全文
254 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
rebirthtiger 2016-05-20
  • 打赏
  • 举报
回复
引用 13 楼 Tiger_Zhao 的回复:
既然是给人看的,导出/保存成 txt 的时候就先替换啊。 导出/保存原始数据时用别的文件名以示区别。
从串口通讯获取到的数据,打开记事本就是乱码,都不知道是什么就没法替换呀。以前的版本打开就能看见。
Tiger_Zhao 2016-05-20
  • 打赏
  • 举报
回复
既然是给人看的,导出/保存成 txt 的时候就先替换啊。 导出/保存原始数据时用别的文件名以示区别。
Tiger_Zhao 2016-05-20
  • 打赏
  • 举报
回复
我们不在一个次元,
唐诗三百首 2016-05-19
  • 打赏
  • 举报
回复
控制字符本来就不是用来显示的喔, 请问为什么一定要显示呢?
misterliwei 2016-05-19
  • 打赏
  • 举报
回复
应该是字体的原因。
rebirthtiger 2016-05-19
  • 打赏
  • 举报
回复
没人知道吗?
rebirthtiger 2016-05-19
  • 打赏
  • 举报
回复
引用 10 楼 Tiger_Zhao 的回复:
你应该吧控制字符替换成约定的可见字符格式进行显示,而不是依赖特定环境下显示字体。 比如 char(3) 可以约定用 #ETX 表示,偷懒点可以约定用 表示。
从仪器接收到的数据用记事本打开看以后,就分不清哪些是cha(2),哪些是char(3)了,想替换也替换不了。 以前xp、win7、win2008都能直接可见,win10就不可见了。 猜测是不是缺少什么字体了?
Tiger_Zhao 2016-05-19
  • 打赏
  • 举报
回复
你应该吧控制字符替换成约定的可见字符格式进行显示,而不是依赖特定环境下显示字体。
比如 char(3) 可以约定用 #ETX 表示,偷懒点可以约定用 表示。
rebirthtiger 2016-05-19
  • 打赏
  • 举报
回复
因为要和串口通讯,需要根据控制符解析数据,所以需要看见它。
rebirthtiger 2016-05-19
  • 打赏
  • 举报
回复
win7、win2008下的记事本可以看见非打印控制支付。win10下的记事本看见是方框。
kingtiy 2016-05-19
  • 打赏
  • 举报
回复
要显示特殊不可见字符. 可以coy到文本编辑器里面查看?
rebirthtiger 2016-05-17
  • 打赏
  • 举报
回复
引用 3 楼 ap0405140 的回复:
ASCII码3代表: ETX (end of text) 正文结束. 属于控制字符, 在不同的系统有不同的显示. 参考 http://baike.baidu.com/link?url=jjAUGRD6bopVc81-N2Vyb2X-NUpME-1UxEZmUvXOEEvVqNSI3LdTNTfZfl1xeCMAyBbsGgsYm2YX8ObPG-RHZ_
能有办法把控制符在sqlserver2012下显示出来吗? 1、sql2005或者sql2008下char(2)都能显示图中的第一个字符。 2、在sql2012下什么都没有显示。
唐诗三百首 2016-05-17
  • 打赏
  • 举报
回复
ASCII码3代表: ETX (end of text) 正文结束. 属于控制字符, 在不同的系统有不同的显示. 参考 http://baike.baidu.com/link?url=jjAUGRD6bopVc81-N2Vyb2X-NUpME-1UxEZmUvXOEEvVqNSI3LdTNTfZfl1xeCMAyBbsGgsYm2YX8ObPG-RHZ_
rebirthtiger 2016-05-17
  • 打赏
  • 举报
回复
显示的结果不对,在sqlserver2008下是可以的
tcmakebest 2016-05-17
  • 打赏
  • 举报
回复
char(3)本就是个控制字符, 不是可打印可读的, 楼主是打开方式不对. 不如换一个 char(65), 会显示 'A'

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧