对WebMatrix进行现代化改造 使其完美支持中文

先插一段小广告为下文做铺垫

我一直觉得WebMatrix是一个很不错的ASP.NET开发工具, 虽然这个小软件是在遥远的 v1.x 年代的产品, 但功能齐全, 使用方便, 而且个头小, 安装后总共才2.8M的个头(想想 Web Developer Express的个头), 自带一个服务器, 安装后还可以直接把程序目录拷贝到 U盘里随身携带, 非常适合那些自己没有电脑但又想学习ASP.NET开发的童鞋(我以前大学 时没买电脑前就是这么干的啦). 不过它有个很大的缺点, 就是不能很好的支持中文. 在 文本编辑器里输入中文后, 光标显示的位置不对.... 一个对策就是不输入中文就好啦, 顺便还可以锻炼英文 :-)

最近一直在研究WebMatrix, 为什么要研究它? 有几个目的和原因:

学习如何设计并实现一个结构良好且有扩展性的程序

学习如何从零开始实现一个代码编辑器

WebMatrix这个程序功能齐全, 具有一定扩展性(支持插件), 个头不大不小(核心部分 估计有50000行左右代码, 花一两个星期摸透, 非常适合进行研究 

这是微软出品的, 就算程序设计的不是很完美, 但至少不会是错误的

响应上面的小广告, 对其进行改造, 使其能够完美支持中文

我花了大概一个星期左右, 基本摸清了整个程序的结构和流程, 发现其实这个程序设 计的还是很不错的. 各模块职责分明, 配合良好, 扩展性很强也很容易进行扩展, 非常符 合 "对修改关闭, 对扩展开放" 这个软件设计思想.

对程序研究得比较清楚之后, 最主要的任务就是

对其进行改造,

使其能够完美支持中文

啦. 经研究发现, WebMatrix里的文本编辑器在输出文本时, 使用了一个固定的字符宽 度(杯具的开始), 这个固定宽度在仅仅使用英文时是没有问题的, 但是如果有中文(或其 他非拉丁系文字), 就会出problems了: 计算出来的文本宽度不对, 这个就直接导致了两 个问题:

当前文本行里的光标位置不对

被选中部分的文字显示不正常

如图:

时间: 2024-09-15 02:30:04

对WebMatrix进行现代化改造 使其完美支持中文的相关文章

使Nginx服务器支持中文URL的相关配置详解_nginx

关于中文URL已经是老话题了,到目前为止依然有很大一部分SEOer都会说不要使用中文URL,对搜索引擎不友好. 不过,那已经是以前的事了,谷歌很早就支持了中文URL,当时百度技术没有跟上,URL中会出现乱码. 在谷歌的算法中,URL包含关键字是会给页面赋予一定权重的,英文是,中文也是,朽木猜测百度之前没有给予中文URL权重,可能是因为识别的问题. 经过一些简单的测试,朽木发现中文URL中包含关键字,对百度SEO有很积极的影响. 不过需要注意的是最好使用UTF8编码,虽然百度有了"一定的识别能力&

详解Linux环境下使Nginx服务器支持中文url的配置流程_nginx

1:确定你的系统是UTF编码 [root@Tserver ~]# env|grep LANG LANG=en_US.UTF-8 2:NGINX配置文件里默认编码设置为utf-8 server { listen 80; server_name .inginx.com ; index index.html index.htm index.php; root /usr/local/nginx/html/inginx.com; charset utf-8; } 如果是用securecrt 上传文件,请选

WinRAR 5.10 Beta 2完美支持 ZIP 档案

流行好用的压缩工具,支持鼠标拖放及外壳扩展,完美支持 ZIP 档案,内置程序可以解开 CAB.ARJ.LZH.TAR.GZ.ACE.UUE.BZ2.JAR.ISO 等多种类型的压缩文件:具有估计压缩功能,你可以在压缩文件之前得到用 ZIP 和 RAR 两种压缩工具各三种压缩方式下的大概压缩率:具有历史记录和收藏夹功能:压缩率相当高,而资源占用相对较少.固定压缩.多媒体压缩和多卷自释放压缩是大多 压缩工具所不具备的. WinRAR 5.10 Beta 2 x86 (1.31 MB) WinRAR

160WiFi完美支持雷凌无线网卡下的XP系统

160wifi自此发布以来,一直受到众多用户的热捧.160WiFi能够完美支持WIN7/WIN8/WIN8.1系统的电脑,但是对于XP系统下的WiFi共享,之前只支持一台XP系统的电脑只能连接一台终端设备,而且必须是iPhone系列.因此,很多XP用户都很遗憾不能够使用160WiFi来创建WiFi热点,经过160WiFi开发者们的不懈努力,从版本2.1.3.5开始,160WiFi可以部分支持XP系统下的WiFi共享,而且可以连接多个终端设备. 目前,经过开发者们的努力,160WiFi能够完美支持

如何使WinXP系统支持137G以上硬盘?

  1.新建一个文本文档. 2.将下列代码拷入文本文件中. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesatapiParameters] "EnableBigLba"=dword:00000001 3.点击菜单栏上的"文件--另存为". 4.然后选择保存路径,输入文件名"使XP系统支持137G以上的硬盘.reg",保存

金山卫士称已完美支持Win7SP1

2月23日下午消息,微软今日正式推出Windows 7 SP1补丁包(以下简称Win7 SP1),与此同时,金山网络也同时宣布金山卫士实现完美支持Win7 SP1. 据悉,Win7 SP1是微软自2009年推出Windows 7以来首次发布的补丁包,对核心性能进行了优化改善,包括对一些重要安全漏洞的修补. 金山称与微软一直保持紧密合作,此前已针对Win7 SP1进行了专业的.全面的兼容性测试,已经实现对Win7 SP1的完美支持. 金山网络于2010年正式推出金山卫士,目前已经升级到2.4.1版

半月拦截两千万恶意网站 瑞星全功能完美支持IE9

4月10日到27日,由瑞星"云安全"系统最新监测数据显示,瑞星共为用户拦截恶意网站入侵2034万余次,挂马网站仍然是威胁网民安全的重要因素.目前,瑞星旗下所有个人级产品已经宣布永久免费,并已经实现与其它安全产品的全线兼容,同时完美支持包括微软最新版浏览器IE9在内的多项 常用软件,用户可以根据自身需要加以选择.瑞星安全专家介绍说,在这些恶意网站中,盗号木马和带有篡改浏览器病毒的占据绝大多数,甚至有病毒能够 强行关闭杀毒软件,并自动向电脑下载大量病毒.用户一旦感染,便可能造成网游.网银账

smarty中改进truncate使其支持中文的方法_php实例

本文实例讲述了smarty中改进truncate使其支持中文的方法.分享给大家供大家参考,具体如下: smarty的truncate不支持中文的截取.将smarty目录下plugins中的modifier.truncate.php改成下面这个样子就可以了 <?php /* * Smarty plugin * ------------------------------------------------------------- * Type: modifier * Name: truncate

YoMail:完美支持Gmail的电子邮件客户端

本文讲的是 :   YoMail:完美支持Gmail的电子邮件客户端 , 谷歌Gmail全球有9亿用户,在国内拥有千万级的用户量,很多人,特别是外贸用户选择Gmail作为其工作邮箱.然而网友发现,网页版Gmail和许多第三方应用都无法访正常收发邮件,这个问题让很多人困扰不已.虽然有一些技术手段可以解决"Gmail失联"问题,然而这毕竟只是少数派,今天我们将介绍一款简单的邮件应用--YoMail (www.yomail.com),轻松解决"Gmail失联"问题. 软件