不显示C#的扩展字符

时间:2017-04-24 18:52:19

标签: c# unicode web-applications extended-ascii

我目前正在使用C#开发Web应用程序。

其中一个在线表单允许用户更新其地址。

然而,当我输入例如:ÀîâääåæéêìñóôõăąăĂąĄ到任何地址信息

然后再次搜索同一个用户,他们的地址会显示在屏幕like this上。

正如您所看到的,最后的字符似乎是错误的。

数据库也错了。

在发送更新之前,我是否需要对字符串执行某些操作,此时我只是将文本字段中的任何内容转换为大写并将信息发送到我的存储过程。

,@p_AddressLine1 char(40)=NULL
,@p_AddressLine2 char(40)=NULL
,@p_AddressLine3 char(40)=NULL
,@p_AddressLine4 char(40)=NULL
,@p_AddressLine5 char(40)=NULL

请帮忙。注意我已经尝试过更改为nchar - 但我认为这可能是一个C#的事情? 感谢

user.PostCode = this.tbPostCode1.Text.ToUpper().Trim() + " " + this.tbPostCode2.Text.ToUpper().Trim();
        user.AddressLine1 = this.txtAddressLine1.Text.ToUpper().Trim();
        user.AddressLine2 = this.txtAddressLine2.Text.ToUpper().Trim();
        user.AddressLine3 = this.txtAddressLine3.Text.ToUpper().Trim();
        user.AddressLine4 = this.txtAddressLine4.Text.ToUpper().Trim();
        user.AddressLine5 = this.txtAddressLine5.Text.ToUpper().Trim();



        user.Update(user);

1 个答案:

答案 0 :(得分:0)

您正在处理无法存储在char字段类型中的扩展字符集,您只能使用ncharnvarchar,但请注意该字符集的空间要求Unicode字符将占用更多空间。

这是一个很好的answer解释差异,here是关于您应该使用的数据类型的文档。