2010-11-14 46 views
1

我有一个ASP.Net页面,用户可以在​​3210中输入一些文本并将其提交给服务器。这个文本将被存储在一个数据库中,并将被呈现在一个winform应用程序中。浏览器代码页检测

如何确保winform application显示用户在TEXTAREA中输入的确切字符。

也就是说,如果用户输入特殊语言特定字母,如Æ,Ø和Å,这些字母是丹麦字母,是否会出现潜在问题?
这些字母根据代码页有不同的代码,所以据我所知,我需要知道TEXTAREA控件显示其输入的代码页。或者我在这里丢失了什么?

我试图在网上找到这个材料,但很难找到解决这个问题的东西。我通常发现页面在讨论服务器要求浏览器使用哪些代码页,以便正确显示发送的数据。

但我的问题是另一种方式,即从客户端到服务器。

回答

0

您可以查看内容类型标题以找出编码。

欲了解更多详情,请参阅this SO回答相关问题。

1

如果您真的希望确定用户使用蹩脚浏览器发送文本不会破坏您的数据主干,您也可以使用HEBCI: HTML Entity-Based Codepage Inference技术。

本质这是它如何工作的:

每个代码页都有自己的指纹图谱。例如,单个实体“& ordm”可以用来区分三巨头:ISO-8859-1/Windows-1252(= BA),MacRoman(= BC)和UTF-8(= C2BA)。

在一种形式中只需添加包含这些指纹作为实体的一个隐藏的输入(如&度;, &分,和& MDASH;),并且当用户提交表单你只需检查返回的十六进制值,并比较他们对你的指纹表。 如果这不匹配,只有那么继续其他回退解决方案。

稍大一点的实现只有五码点的伟大工程:

my @fp_ents = qw/deg divide mdash bdquo euro/; 
my %fingerprints = (
    "UTF-8" => ['c2b0','c3b7','e28094','e2809e','e282ac'], 
    "WINDOWS-1252" => ['b0','f7','97','84','80'], 
    "MAC"   => ['a1','d6','d1','e3','db'], 
    "MS-HEBR"  => ['b0','ba','97','84','80'], 
    "MAC-CYRILLIC" => ['a1','d6','d1','d7',''], 
    "MS-GREEK"  => ['b0','','97','84','80'], 
    "MAC-IS"  => ['a1','d6','d0','e3',''], 
    "MS-CYRL"  => ['b0','','97','84','88'], 
    "MS932"  => ['818b','8180','815c','',''], 
    "WINDOWS-31J" => ['818b','8180','815c','',''], 
    "WINDOWS-936" => ['a1e3','a1c2','a1aa','',''], 
    "MS_KANJI"  => ['818b','8180','','',''], 
    "ISO-8859-15" => ['b0','f7','','','a4'], 
    "ISO-8859-1" => ['b0','f7','','',''], 
    "CSIBM864"  => ['80','dd','','',''], 
); 
+0

我不得不看Facebook的登录-HTML源在2012年5月,发现他们实际使用这种技术,哈哈! – GitaarLAB 2012-07-24 04:42:24