摘要:随着全球数字化、网络化发展进程的加快,国家相关部门及时采取了保护、开发、利用民族语言资源的措施,因此蒙古文网络资源也日益丰富起来。但由于蒙古文编码及浏览方式的独特性,在开发的过程中会遇到不少难题,本文以ASP.NET技术为基础,总结了在开发的过程中遇到的各种问题并提供了相应的解决方案。
关键字:蒙古文网站 ASP.NET 蒙古文网页显示
1怎么实现系统没有相应字体一样能显示网页内容
1.1问题分析
如果浏览设备没有相应字体,那么在浏览的过程中字体就会显示为乱码,如何解决这个问题呢?终端用户可以安装该网站对应的字库,大多是采用下载ActiveX控件来实现,但这样防火墙会预警,在一定程度上影响用户体验。本文经研究在网页中内嵌压缩字库是一种有效办法,但不同的浏览器需要不同的字体文件(如图一),也就是说,在服务器端必须有2-3个不同格式的字体文件用来应付各个浏览器。
浏览器名称 | 支持格式 |
IE8及以下 | 仅支持.eot字体格式 |
IE9及以上 | 支持.eot和.ttf字体格式 |
FireFox | 支持.eof .ttf woft字体格式 |
Chrome | 支持 .ttf .otf .svg字体格式 |
Safari | 支持.ttf .otf .svg字体格式 |
Opera | 支持.ttf .otf .sag字体格式 |
图一 各浏览器支持字体文件格式
1.2相应代码及解决方案
通过字体格式转换工具如"MicrosoftWEFT",将.ttf格式字体转化为.eof格式,放到服务器端,并将图二的css样式加到所需的页面,在需要引用蒙古的地方加入css样式 font-family:’monbaiti’.经实验,将代码放到新浪云端,通过手机设备进行访问,可以成功显示蒙古文。
图二 字体CSS代码
2怎么实现网页蒙文从左到右竖排方式正常显示
2.1问题分析
本文经研究目前人类常用的书写形式和显示款式有如下几种:
书写形式显示款式 | 语言文字 |
“从左至右”书写、“从上向下”显示 | 英文、汉文、藏文等 |
“从右至左”书写、“从上向下”显示 | 阿拉伯文、我国的维、哈、柯文等 |
“从上向下”书写、“从右至左”显示 | 竖排汉文、日文等 |
“从上向下”书写、“从左至右”显示 | 传统蒙古文、满文、锡伯文、托忒文 |
图三 语言文字显示书写格式
解决蒙古文“从上向下”书写、“从左至右”显示的问题可以通过把文字制成图片的形式嵌入到网页中,但是对于动态网页要实时更新数据显然就不合适了,第二种方法就是通过css样式进行控制。
2.2相应代码及解决方案
css加writing-mode:tb-lr;此css样式可以实现蒙文“从上向下、从左到右”显示的特点,但目前为止只有IE浏览器能支持writing-mode样式。由于IE是windows系统的自带浏览器,可以在加载页面的时候,通过javascript代码判断一下用户的浏览器型号,如果用户用的不是IE浏览器,那么就跳转到一个显示“请使用IE浏览器”的网页,然后用户再用IE打开,如今很多知名内蒙古文网站都是用的这种方法实现的,如天堂草原音乐网(http://mongol.ttcy.com/)。
3怎么样实现蒙古文同数据库的交互
3.1问题分析
本文在.NET 4.5和SQL SERVER 2012下测试,在页面控件上加上writing-mode样式,可以实现从数据库中读取蒙古文并按照“从上向下、从左到右”显示,但是进行增加和更新的时候,通过传统的SqlCommand对象和Insert、
Update sql语句对数据库数据进行更新时,存到数据库中的蒙文却变成“?”。
但是将Command 对象、DataAdapter 对象、DataSet 对象、DataTable 对象和DataRow 对象结合起来实现数据的添加却能正确识别蒙古文Unicode 字符。
3.2相应代码及解决方案
首先将整个表对象读入到DataTable对象中,通过判断strId是否为空来确定具体操作,如果是空,增加一条新DataRow,并赋值来完成添加操作,如果非空,
通过其值遍历DataTable找到里面确定的DataRow并改变相应数据,最后通过SqlCommandBuilder对象来完成更新操作。示例代码如图四。
图四蒙古文与数据库交互示例代码
4总结
当然蒙古文网站建设中的难题不仅仅是本文中提到的这几点, 今后我们还会做更进一步的研究, 以求得不断完善.
参考文献:
[1] 包艳花 关于蒙古文网站建设现状及发展趋势的若干思考. 呼伦贝尔学院学报,1009-4601(2009)04-0016-03
[2]图雅 夜新铭 动态蒙古文网站建设中的若干问题研究 内蒙古大学学报
2007年9月第38卷第5期
X