打算用英语显示数据并用英语捕获数据的浏览器基础应用程序需要有一个UTF-8数据库吗?
如果在日语操作系统上访问该站点,是否有任何问题?如果用户只用英语输入,我们是否需要额外注意?如果用户输入日语,那么系统如何检测并抛出错误?
该网站将在.Net 3.5中开发。
EDIT ---------------------------------------------- -----------------------------------------
我不想捕捉日语或任何其他语言。该网站将完全英文,用户也应输入英文信息。在日语操作系统上显示英文字符也不是问题。问题是如果日语操作系统上的用户在文本框中键入日语字符,那么如何识别并向用户抛出错误?其次他能在文本框中输入英文字符吗?
答案 0 :(得分:4)
日语字体和输入法在Unicode中有“两个”版本的“英语”字符 - 正常宽度和“宽/等宽”字符(从上到下打印到从左到右时很有用)。小心你如何试图“过滤掉”非英语字符 - 如果你提出错误例如#2,你的用户将会非常困惑!
1)正确编码
2)正确编码
第二行不是不同的字体或'编码' - 它们是我们字母表的附加固定宽度副本,在平假名/片假名/汉字(日文写作)的块中很好地对齐。
我肯定会在数据库中考虑UTF8编码和NCHAR / NVARCHAR。
答案 1 :(得分:2)
我认为没有任何强有力的理由不使用UTF-8。你永远不会知道奇怪的角色可能泄漏的地方。
应处理和重新编码任何传入数据。 使用html表单,您可以提供以下标记:
<input type="hidden" name="_charset_" value="" />
所有浏览器都应该使用用户使用的字符集填充它,然后您可以使用它来解码/重新编码输入。
另外,如果您还没有阅读,请阅读Joel关于Unicode的帖子: http://www.joelonsoftware.com/articles/Unicode.html
答案 2 :(得分:1)
嗯,你可以很容易地检查非'英语'字符(我猜想正则表达式),但我不明白你为什么会这样做。但你可以这样做。
我也没有看到不将NVARCHAR用于用户提供的文本字段的充分理由。要求经常变化。
答案 3 :(得分:1)
从一开始就在应用程序中构建多字节字符集支持总是比较容易,而不是在以后对其进行改进。
除了必须重新访问所有代码之外,您最终会将现有数据库转换为unicode时出错,并且您可能会发现没有好办法确定给定数据块实际编码的字符集在第一时间。