问题列表 - 第10678页

无法让Servlet以UTF-8的形式处理请求内容

我正在将遗留应用程序从ISO-8859-1转换为UTF-8,并且我已经使用了许多资源来确定我需要设置什么才能使其工作.但是,在几次配置,代码和环境更改之后,我的Servlet(在Tomcat 5中)似乎不会将提交的HTML表单内容处理为UTF-8.

这是我为配置设置的内容.

  • 系统属性
[user@server ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
  • tomcat5 server.xml
<Connector protocol="HTTP/1.1"
    ...
    URIEncoding="UTF-8"
    useBodyEncodingForURI="true"/>
Run Code Online (Sandbox Code Playgroud)
  • JSP文件
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
...
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)
  • Servlet过滤器
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
    if(request.getCharacterEncoding() == null)
    {
        request.setCharacterEncoding("UTF-8");
    }
    ...
Run Code Online (Sandbox Code Playgroud)

使用一些调试日志,我知道以下内容:

System.getProperty("file.encoding"): "UTF-8"
java.nio.charset.Charset.defaultCharset(): "UTF-8"
new OutputStreamWriter(new ByteArrayOutputStream()).getEncoding(): "UTF8"
Run Code Online (Sandbox Code Playgroud)

但是,当我使用包含"Битьбаклуши"的输入提交表单时,我会看到以下内容(来自我的日志):

request.getParameter("myParameter") = Ð\221иÑ\202Ñ\214 баклÑ\203Ñ\210Ð
Run Code Online (Sandbox Code Playgroud)

我知道请求内容类型是null,所以它在我的servlet过滤器中显式设置为"UTF-8".此外,我正在从终端查看我的日志,我知道其编码也设置为UTF-8.

我在这里错过了什么?还需要为Servlet设置什么以正确处理输入为UTF-8?如果有更多信息可以提供帮助,我很乐意添加更多调试并用它来更新这个问题.

编辑:

  • 我没有使用Windows终端(我使用的是PuTTY),所以我很确定问题不在于我正在查看日志.这是因为当我使用提交的内容将我的响应发送回浏览器并输出它时,它与上面的垃圾一样.
  • 该表格是从IE8提交的.

解: …

java tomcat utf-8 internationalization

1
推荐指数
1
解决办法
9735
查看次数

你应该在服务器端进行验证吗?

你应该在服务器端进行验证,还是只在客户端进行验证?

@TheTXI

我很高兴你的惊讶我只是不想留下任何可能改变某人回答给我错误信息的东西.


似乎有很多人触及我的目标,但Ajax的部分应该保留在我的问题中,因为这是最重要的部分.

然而阅读我知道的帖子看到一个坏人可以轻松加载firebug并将我的按钮更改为提交按钮并发帖.或者其他一些方式.

javascript validation ajax

14
推荐指数
5
解决办法
5265
查看次数

你如何解决memcached的键/值限制?

Memcached对密钥(250?)和值(大约1MB)有长度限制,以及一些(据我所知)对密钥没有很好定义的字符限制.在您看来,解决这些问题的最佳方法是什么?我使用Perl API Cache :: Memcached.

我目前所做的是,如果原始值太大("parts:<number>"),则为主键的值存储一个特殊字符串,在这种情况下,我使用名为1+ <main key>的键存储<number>部分,2 + <主键>等.对于某些情况,这似乎"好"(但很乱),对其他情况不太好,并且它有一些固有的问题,即某些部分可能随时丢失(因此空间被浪费)为了保持他人和时间浪费阅读他们).

至于关键限制,人们可能会实现散列并在值中存储完整的密钥(以解决冲突),但我还不需要这样做.

有没有人提出更优雅的方式,甚至是透明处理任意数据大小(和键值)的Perl API?有没有人黑客入侵memcached服务器以支持任意键/值?

memcached

15
推荐指数
2
解决办法
3万
查看次数

如何合并2个Django QuerySets并制作一个SELECT DISTINCT

models.py
class SinglePoint(models.Model):
    attributes = models.TextField(blank=True)
    name = models.CharField(max_length=100)
    geom = models.PointField() #Kartenposition
    objects = models.GeoManager()

class Connection(models.Model):
    name = models.CharField(max_length=100)
    #points = models.ManyToManyField(SinglePoint) #OLD
    p1 = models.ForeignKey(SinglePoint, related_name='p1_set') #NEW
    p2 = models.ForeignKey(SinglePoint, related_name='p2_set') #NEW
    obs = models.ManyToManyField(Observation, blank=True)
    conds = models.ManyToManyField(Condition, blank=True)
    objects = models.GeoManager()

class Meta:
    order_with_respect_to = 'p1'
Run Code Online (Sandbox Code Playgroud)

在我的view.py中:

...
p1_points = SinglePoint.objects.filter(p1_set__vektordata__order__project__slug=slug)
p2_points = SinglePoint.objects.filter(p2_set__vektordata__order__project__slug=slug)
...
Run Code Online (Sandbox Code Playgroud)

在我切换到ForeignKey之前,它适用于:

points = SinglePoint.objects.filter(connection__vektordata__order__project__slug=slug)
Run Code Online (Sandbox Code Playgroud)

如何将这两个QuerySet"连接"到一个QuerySet并创建一个distinct()?

谢谢!

django distinct django-queryset geodjango

19
推荐指数
3
解决办法
2万
查看次数

这个SQLCe查询有什么问题?

在过去的一个小时里,我一直在尝试这个查询的不同变体,但是我在用户名上得到了错误,用户名只是一个普通的字符串,用户名是我从xml文件中获得的,不包含任何特殊字符或者什么的

我正在使用SLQ compact 3.5

PS我试过用?而不是@username也无法正常工作除"日期"之外的所有领域都是"nchar"

                C = nodeItem["user_from"].InnerText;
                avatar = nodeItem["user_from_avatar"].InnerText;
                string msgText = nodeItem["message"].InnerText;
                DateTime dt=DateTime.Now;

                string sql = "INSERT INTO posts(user,msg,avatar,date) VALUES(@username,@messige,@userpic,@thedate)";
                using (SqlCeCommand cmd = new SqlCeCommand(sql, connection))
                {
                    cmd.Parameters.Add("@username",C);
                    cmd.Parameters.Add("@messige", msgText.ToString());
                    cmd.Parameters.Add("@userpic", avatar.ToString());
                    cmd.Parameters.Add("@thedate", dt);
                    connection.Open();
                    cmd.ExecuteNonQuery();
                    adapter.Update(data);
                    connection.Close();
                }
Run Code Online (Sandbox Code Playgroud)

错误消息: 替代文字http://clip2net.com/clip/m11962/1247582804-clip-16kb.png 谢谢,尼古拉

.net ado.net sql-server-ce

2
推荐指数
1
解决办法
1610
查看次数

主报告SSRS中缺少子报表的页眉

我有一个SSRS报告有3个表,一个接一个,显示来自3个不同数据集的数据.现在一个RDL.但现在我意识到我需要3个页面标题取决于表格和每个页面结果中的数据集.有没有可能这样做?

我尝试将那些表创建为具有自己的页眉的三个不同的rdl.并将这些报告称为主报告中的子报告.子报表在其自己的执行中显示页眉,但在执行主报表时,页眉不存在.这里有任何想法.是将不同页眉添加到单个报表中的正确方法.

你的帮助将非常感激.

谢谢,圣

reporting-services

7
推荐指数
1
解决办法
8036
查看次数

有效的HTML和TD元素的数量

我有一个HTML表,有几列和几行.最后一行并不总是具有与其他行一样多的TD元素.它在我检查过的几个浏览器中正确呈现并通过验证检查.但似乎不正确.TD元素的数量是否应该在每一行中相同?

编辑:这可能发生在有或没有colspans和rowpans.

html validation markup

2
推荐指数
2
解决办法
223
查看次数

如何将WordPress博客嵌入其他网站?

我目前使用iWeb制作我的网站.有没有办法可以将WordPress博客嵌入网站?通过简单的选项或通过编码?

wordpress iweb

4
推荐指数
1
解决办法
3万
查看次数

通过远程连接运行带有 GUI 的程序

我正在尝试通过使用 PKA ssh 连接的 python 脚本启动 perfmon 和另一个具有 GUI 的程序。是否有可能做到这一点?如果是这样,有人可以指出我正确的方向吗?

python ssh user-interface perfmon

3
推荐指数
1
解决办法
3002
查看次数

如何在Windows上使用Perl在命令行上处理通配符?

我虽然这很简单,但显然我做不到:

script.pl *.ext

在WinXP命令处理器中.

有内置的解决方案吗?(即不是CPAN模块?)

perl windows-xp file-globs

4
推荐指数
1
解决办法
1547
查看次数