从文本框中获取输入作为印地语字符并将其存储到数据库



我使用asp.net和c#在我的应用程序和Mysql作为数据库。我想从用户输入印地语,并将其存储在数据库和检索它。

当我从Mysql数据库中存储印地语字符时,它对我来说工作得很好,但当我使用文本框输入印地语字符时,它显示我?????????。

我猜问题是aspx页面没有设置为支持印地语字符。请告诉我怎么做

我猜在Http请求和响应上使用UTF-8编码将解决这个问题。你的requestEncodingresponseEncoding在你的网络中是什么?配置文件设置为当前?

查看更多关于<globalization>标签在这里:

http://msdn.microsoft.com/en-us/library/hy4kkhe0 (v = VS.100) . aspx

哈哈…哦,记忆(我只需要处理西班牙语,它适合默认的latin1)。

所以我不知道堆栈的MS方面,但我认为它是与Java相同类型的解决方案。也就是说,您应该始终假设UTF-8,从而使您的Content-Type HTML响应始终显示UTF-8,以便浏览器知道以UTF-8编码POST数据。您应该始终检查HTML POST的编码类型,以防万一您的浏览器忽略了HTML表单的编码(有人可能使用curl/wget/custom-browser)。您需要学习如何在MS-land中从一种编码类型转换为UTF-8(作为参考,在java中,我们只需输入String s = new String(bytes, encoding_name))

假设MS的堆栈使用UTF-16或UCS-32或其他什么,以便UTF-8易于提取,接下来是mysql层。

这包括2件事…1)列编码必须设置为UTF8..怎么写都不明显,甚至拼写都很烦人。谷歌一下就知道了…"创建数据库foo默认字符集UTF8"(近似语法),或者如果您出于某种原因担心,可以在表级别执行"创建表foo(..)字符集UTF8"(近似语法)。或者,如果表已经存在,则取每个可以取任意web形式文本的列(可能包括login-name,但不包括像枚举varchars这样的列-因为这会浪费索引空间-即使您认为它不会)。"alter table foo change name varchar(255)字符集UTF8"(近似语法).

2)你必须建立ODBC连接(java中的jdbc, MS中不知道),用UTF-8编码所有的输入/输出字符。我设置了两个参数(use-unicode和character-set=UTF-8)(近似参数名称)。

谷歌一下,这应该会给你指明正确的方向。

用character-set=UTF8和latin1连接到mysql来测试现有的DB ..当以每种编码方式连接时,您将在文本-数据中看到完全不同的输出。如果幸运的话,你已经正确输入了数据。否则你将不得不重新生成所有的数据,或者执行一些非常聪明的字符转换技巧,就像我曾经做过的那样(痛苦的事情)。

最新更新