北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 5178|回复: 9

UTF8什么时候能开放啊?

[复制链接]
发表于 2017-2-4 08:15:57 | 显示全部楼层 |阅读模式
现在这个GBK实在是太不方便了。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-2-4 10:12:10 | 显示全部楼层
换行乱码如果不是gbk的问题的话,我觉得gbk没有什么不好啊...
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-2-4 20:38:40 | 显示全部楼层
回复 1# cohomology


    貌似目前没有计划。之前jason弄过一个不完全的utf8,只能支持utf8输出、不支持utf8指令的那种,后来不了了之了,因为需求不是很大。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2017-2-5 12:11:24 | 显示全部楼层
回复 3# hypnos

我自己用Haskell做了一个客户端,显示中文就是有问题,用luit也解决不了。

ps,我分析了一下输出,貌似里面有很多类似^[[31;42;0m^[[30;40;1m这样的ansi控制符,请问第一个控制符的作用在哪里?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-2-5 13:14:34 | 显示全部楼层


  1. #!/bin/bash
  2. # This script echoes colors and codes

  3. echo -e "\n\033[4;31mLight Colors\033[0m  \t\t\033[1;4;31mDark Colors\033[0m"

  4. echo -e "\e[0;30;47m Black    \e[0m 0;30m \t\e[1;30;40m Dark Gray  \e[0m 1;30m"
  5. echo -e "\e[0;31;47m Red      \e[0m 0;31m \t\e[1;31;40m Dark Red   \e[0m 1;31m"
  6. echo -e "\e[0;32;47m Green    \e[0m 0;32m \t\e[1;32;40m Dark Green \e[0m 1;32m"
  7. echo -e "\e[0;33;47m Brown    \e[0m 0;33m \t\e[1;33;40m Yellow     \e[0m 1;33m"
  8. echo -e "\e[0;34;47m Blue     \e[0m 0;34m \t\e[1;34;40m Dark Blue  \e[0m 1;34m"
  9. echo -e "\e[0;35;47m Magenta  \e[0m 0;35m \t\e[1;35;40m DarkMagenta\e[0m 1;35m"
  10. echo -e "\e[0;36;47m Cyan     \e[0m 0;36m \t\e[1;36;40m Dark Cyan  \e[0m 1;36m"
  11. echo -e "\e[0;37;47m LightGray\e[0m 0;37m \t\e[1;37;40m White      \e[0m 1;37m"
复制代码



是对应的颜色编码吗?经常在写 bash 脚本的时候,要给输出文字上颜色,上面为几个颜色的代码对照
运行后就能看到效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2017-2-5 13:17:32 | 显示全部楼层
回复 5# redcoat

我知道这些东西是控制符
0是重置对吧?那像我举的例子里面连续两个控制符,第一个^[[31;42;0m不就多余了吗?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-2-5 13:31:38 | 显示全部楼层
会不会是编码的片段

测试字体一^[[31;42;0m^[[30;40;1m测试字体二...

第一个控制符是属于前面字体的重置,类似北侠mud里的$NOR$, 由此开始第二个控制符,描述后面字体的颜色
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-2-5 15:13:12 | 显示全部楼层
本帖最后由 hypnos 于 2017-2-5 03:17 PM 编辑

不要问……自己当年写的自己已经看不懂了……虽然本来也是low到爆

  1. # coding: utf-8

  2. class Ansi
  3.   attr_accessor :Maps, :ESC
  4.   # Class variable

  5.   @@ESC = "\e"
  6.   
  7.   @@Maps = {

  8.    # @@ESC = "\e",
  9.     #define @@ESC        ""
  10.     #define CSI        @@ESC + "["

  11.     # Foregroud
  12.    
  13.     @@ESC + "[30m" => "BLK",          # Black
  14.     @@ESC + "[31m" => "RED",          # Red      
  15.     @@ESC + "[32m" => "GRN",          # Green   
  16.     @@ESC + "[33m" => "YEL",          # Yellow   
  17.     @@ESC + "[34m" => "BLU",          # Blue
  18.     @@ESC + "[0;34m" => "BLU",          # Blue(pkuxkx)
  19.     @@ESC + "[35m" => "MAG",          # Magenta  
  20.     @@ESC + "[36m" => "CYN",          # Cyan
  21.     @@ESC + "[0;36m" => "CYN",          # Cyan(pkuxkx)   
  22.     @@ESC + "[37m" => "WHT",          # White
  23.     @@ESC + "[37;0m" => "WHT",          # White(pkuxkx)
  24.     @@ESC + "[0;37m" => "WHT",          # White(pkuxkx)
  25.    
  26.     # Hi Intensity Foreground Colors   

  27.     @@ESC + "[1;30m" => "灰",          # 灰色?(pkuxkx)
  28.     @@ESC + "[1;31m" => "HIR",        # Red
  29.     @@ESC + "[0;1;31m" => "HIR",        # Red(pkuxkx)
  30.     @@ESC + "[1;32m" => "HIG",        # Green   
  31.     @@ESC + "[1;33m" => "HIY",        # Yellow   
  32.     @@ESC + "[1;34m" => "HIB",        # Blue     
  33.     @@ESC + "[1;35m" => "HIM",        # Magenta  
  34.     @@ESC + "[1;36m" => "HIC",        # Cyan     
  35.     @@ESC + "[1;37m" => "HIW",        # White   

  36.     # High Intensity Background Colors  

  37.     @@ESC + "[41;1m" => "HBRED",       # Red      
  38.     @@ESC + "[42;1m" => "HBGRN",       # Green   
  39.     @@ESC + "[43;1m" => "HBYEL",       # Yellow   
  40.     @@ESC + "[44;1m" => "HBBLU",       # Blue     
  41.     @@ESC + "[45;1m" => "HBBLU",       # Magenta  
  42.     @@ESC + "[46;1m" => "HBCYN",       # Cyan     
  43.     @@ESC + "[47;1m" => "HBWHT",       # White   
  44.    
  45.     #  Background Colors  
  46.    
  47.     @@ESC + "[40m" => "BBLK",          # Black   
  48.     @@ESC + "[41m" => "BRED",          # Red      
  49.     @@ESC + "[42m" => "BGRN",          # Green   
  50.     @@ESC + "[43m" => "BYEL",          # Yellow   
  51.     @@ESC + "[44m" => "BBLU",          # Blue     
  52.     @@ESC + "[45m" => "BMAG",          # Magenta  
  53.     @@ESC + "[46m" => "BCYN",          # Cyan     
  54.     # @@ESC + "[47m" => "BWHT",          # White   

  55.     @@ESC + "[2;37;0m" => "NOR",      # Puts everything back to normal

  56.     @@ESC + "[0m" => "",
  57.     @@ESC + "[1m" => "HI",
  58.     @@ESC + "[1A" + @@ESC + "[200D" + @@ESC + "[K" => "DES",

  59.     @@ESC + "[1;5m" => "BNK", # pkuxkx
  60.     @@ESC + "[7m" => "REV", #pkuxkx
  61.     @@ESC + "[4m" => "U", #pkuxkx

  62.   }

  63.   
  64.   # Class method
  65.   def Ansi.colorprocess(str, colorful)
  66.     if colorful then
  67.       @@Maps.each { |k, v|
  68.         str.gsub!(k, "$" +v.to_s + "$")
  69.       }
  70.     else
  71.       @@Maps.each {|k,v|
  72.         str.gsub!(k, "")
  73.       }
  74.     end
  75.     return str
  76.   end

  77. end

  78. =begin

  79. #颜色处理测试

  80. ansi = Ansi.new
  81. a = "\r\e[2;37;0m\e[1;37m【江湖】\e[36m杭州城\e[36m中有\e[37m毛头小贼\e[2;37;0m\e[1;37m\e[36m横行,据说此贼带有价值\e[1;33m尚可\e[2;37;0m\e[1;37m\e[36m的财宝!\e[2;37;0m\r\n"
  82. a = "   \e[44;1m∷∷\e[37;0m\r\n    \e[44;1m∷∷\e[37;0m  个素未谋面,可借此头的?我喜欢偶尔在这个世界里出现,   \e[44;1m∷∷\e[37;0m\r\n    \e[44;1m∷∷\e[37;0m  因为在这里,我们也许欢笑一堂,也许睚眦必报,但是我们   \e[44;1m∷∷\e[37;0m\r\n    \e[44;1m∷∷\e[37;0m  都没有那么虚伪,我们活得不累。娱乐存在的意义,不在于   \e[44;1m∷∷\e[37;0m\r\n    \e[44;1m∷∷\e[37;0m  它给我欢乐,而在于它给了我空间,尽管这空间是虚拟的,   \e[44;1m∷"
  83. print a
  84. puts Ansi.colorprocess(a, true)
  85. a = "\r\e[2;37;0m\e[1;37m【江湖】\e[36m杭州城\e[36m中有\e[37m毛头小贼\e[2;37;0m\e[1;37m\e[36m横行,据说此贼带有价值\e[1;33m尚可\e[2;37;0m\e[1;37m\e[36m的财宝!\e[2;37;0m\r\n"
  86. print a
  87. puts Ansi.colorprocess(a, false)


  88. =end


复制代码
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2017-2-6 09:41:44 | 显示全部楼层
回复 8# hypnos

比如这里面的
   
\e[2;37;0m\e[1;37m\e[36m

和\e[1;36m最终效果是不是一样?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2017-2-6 12:09:14 | 显示全部楼层
回复 9# cohomology


    问这种问题有什么意义?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 08:06 PM , Processed in 0.014285 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表