本帖最后由 zhji09 于 2011-05-30 14:40:08 编辑

解决方案 »

  1.   

    呃,好像可以统一用utf-8编码吧
      

  2.   

    恩,知道可以统一UTF-8编码:把后台处理部分也改用UTF-8,但是由于后台系统比较老--无法变更,所以只能在想起他的招数。
    还有其它办法吗?
    谢谢你的支持~~~~~~
      

  3.   

    使用正则匹配就行,不在IBM-943范围的输入就return false;具体的正则匹配你自己会找吧?
      

  4.   

    顺便给你一个地址, 讲日文 韩文这些正则的 你套着用就行 原理你应该懂 http://blog.csdn.net/ninjya_luck/archive/2008/04/11/2282689.aspx
      

  5.   

    仔细研究了一下:
    无法直接从UNICODE里面,通过正则表达式来区分日文和中文。因为日文的汉字与中文的汉字在UNICODE里面是用统一编码--CJK(中、日、韩)。
      

  6.   

    人家输入什么是不能控制的,只能在服务器端检测不合适字符进行处理(舍弃、拒绝或转换)
    因为日语也有汉字,如果要客户端检测,起码需要一个该编码下的完整字表可以设置输入的form是在一个iframe内,这个iframe页面设为你需要的编码
    在这种情况下如果输入的字符超出编码范围的话,提交到服务器端会变成&#xxxxx;的形式,但编码范围内的字符不会变,这样服务器端检测就方便些
    上面的博文有点点不合时宜了,里面提的日文仅指五十音全角字符,日语字符还有半角的,汉字的unicode范围也没包含extent,另外unicode v6 的汉字已经增加,在utf-8编码下未必都是三字节
      

  7.   

    谢谢楼上的精彩分析,现在的思路是这样的:
    在用户输入数据后、提交前:使用JS脚本使用完整的UTF-8/IBM-943映射表进行对应检查,如果字符所有字符都在IBM-943中都有相应编码,则继续后面的流程--提交数据到服务器;否则返回提示信息给用,重新填写。首先,上面的思路能否解决问题,是否会有遗漏点,是否还有更好的办法?谢谢。非常感谢你的参与~~~~~~~~~`
      

  8.   

    js本身没隐患但网络数据传送是协议+方法,所以,不需要网页(没网页就相当于没js)也能提交数据的,服务器主要就是防这种方式
      

  9.   

    谢谢楼上各位的参与,目前计划采用:
    在用户输入数据后、提交前:使用JS脚本使用完整的UTF-8/IBM-943映射表进行对应检查,如果字符所有字符都在IBM-943中都有相应编码,则继续后面的流程--提交数据到服务器;否则返回提示信息给用,重新填写。