小编icc*_*bot的帖子

在PHP中使用半角假名计算日语多字节字符串的长度

所以我有一个UTF-8编码的字符串,可以包含全宽汉字,全角假名,半角假名,罗马字,数字或卡哇伊日语符号,如★或♥.

如果我想要我使用的长度mb_strlen(),它将每个长度计为1.这对大多数用途来说都没问题.

但是,我(有一个日本客户)被要求只计算半宽假名为0.5(为了文本字段的最大长度),因为显然这就是日本网站的做法.我这样做使用mb_strwidth()将全宽计为2,将半宽计为1,然后我除以2.

然而,这种方法也将罗马字符计为1,所以类似于Choc???7的东西...然后我除以2来计算汉字,我得到3.5.但我实际上想要5.5(罗马字母为4,半宽假名为1.5).

//编辑:更多信息:任何一个全长和半角的角色(甚至非假名)对于全宽应为1,对于半宽应为0.5.例如,像这样的字符?????应该都是1,但是字符¥,3@(应该都是0.5

// EXTRA EDIT:像☆和♥这样的符号应为1,但mb_strwidth/2方法将它们返回为0.5

日本系统是否计算字符串长度的标准方式?或者每个人都只是通过他们的字符串循环并计算与标准宽度规则不匹配的字符?

php unicode character-encoding

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

在jqplot中更改y轴标签区域的宽度

好的,我有条形图.它基本上可以工作......但是y轴上的标签有点长并且包裹然后相互碰撞.

我已经尝试过改变css,但它被JS覆盖了.我尝试通过jqplot库扫描,找出它发生的地方,但我迷路了.有任何想法吗?我可以设置一个选项吗?

你可以在这里看到:

在此输入图像描述

这是我的html文件:

<html>
<head>
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
<script language="javascript" type="text/javascript" src="jqplot.barRenderer.min.js"></script>
<script language="javascript" type="text/javascript" src="jqplot.categoryAxisRenderer.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
<script>
    $(function() {
        graph_me('chart1',[ 'This is a label', 'This is another label..', 'Is this too long? This looks like it might break','Im not sure, but '], [40, 20, 5, 1]);
    });
    function graph_me(div_name, labels_in, values_in) {
        var labels = labels_in.reverse();
        var values = values_in.reverse();
        $.jqplot(div_name, [values], …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery jqplot

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

在Spring MVC中处理Multipart和非多部分HTTP POST

我有一个用于上传文件的SpringMVC Web服务,如下所示:

@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload(MultipartHttpServletRequest request) {
    // upload the file
}
Run Code Online (Sandbox Code Playgroud)

一切都很花花公子.但是如果其中一个消费者发布了非多部分表单,那么我会得到这个例外

java.lang.IllegalStateException: Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]
Run Code Online (Sandbox Code Playgroud)

这是有道理的..但是我不希望我的最终用户看到500个servlet异常.我想要一个友好的错误消息.

我刚试过这个(就像其他POST一样):

@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload2(){ 
// return friendly msg 
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/upload.json'
Run Code Online (Sandbox Code Playgroud)

有没有办法安全地处理多部分和非多部分POST请求?在一种方法,或2种不同的方法,我不在乎.

java spring http spring-mvc

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

在Spring中使用Java驱动程序的无限MongoDB ReplicaSetStatus更新程序异常

我刚刚将一个Spring Web应用程序部署到Glassfish上.这个应用程序包含一个为Mongo对象注入的Spring bean,这是非常基本的,它看起来像这样:

<bean id="mongo" class="com.mongodb.Mongo">
    <constructor-arg value="127.0.0.1" />
    <constructor-arg value="27017" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我启动我的网络应用程序,然后使用这个Mongo对象查询数据库并插入记录等等..一切正常.

但是在我的server.log文件中,我得到了无穷无尽的SEVERE错误消息.他们是NullPointerExceptions和IOExceptions.它们似乎与ReplicaSetStatus有关,但我不知道它为什么一直试图连接,它是否默认开启?

有谁知道是什么原因引起的?我该如何解决问题,或者阻止导致问题的原因?

//编辑:部署应用程序后立即启动异常.但是当我禁用我的应用程序,甚至取消部署它们时,它们不会停止.

这些消息只是不断编写,但从我看到的只有4种类型的错误:

[#|2011-04-22T17:49:40.818+0900|SEVERE|glassfish3.1|com.mongodb.ReplicaSetStatus|_ThreadID=37;_ThreadName=Thread-1;|can't update node: 27017:27017
java.lang.NullPointerException
    at com.mongodb.OutMessage.reset(OutMessage.java:73)
    at com.mongodb.OutMessage.<init>(OutMessage.java:51)
    at com.mongodb.OutMessage.query(OutMessage.java:38)
    at com.mongodb.DBPort.findOne(DBPort.java:127)
    at com.mongodb.DBPort.runCommand(DBPort.java:138)
    at com.mongodb.ReplicaSetStatus$Node.update(ReplicaSetStatus.java:149)
    at com.mongodb..updateAll(ReplicaSetStatus.java:314)
    at com.mongodb.ReplicaSetStatus$Updater.run(ReplicaSetStatus.java:263)
|#]

[#|2011-04-22T17:49:40.818+0900|SEVERE|glassfish3.1|com.mongodb.ReplicaSetStatus|_ThreadID=37;_ThreadName=Thread-1;|can't update node: localhost:27017
java.lang.NullPointerException
    at com.mongodb.OutMessage.reset(OutMessage.java:73)
    at com.mongodb.OutMessage.<init>(OutMessage.java:51)
    at com.mongodb.OutMessage.query(OutMessage.java:38)
    at com.mongodb.DBPort.findOne(DBPort.java:127)
    at com.mongodb.DBPort.runCommand(DBPort.java:138)
    at com.mongodb.ReplicaSetStatus$Node.update(ReplicaSetStatus.java:149)
    at com.mongodb.ReplicaSetStatus.updateAll(ReplicaSetStatus.java:314)
    at com.mongodb.ReplicaSetStatus.ensureMaster(ReplicaSetStatus.java:306)
    at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:383)
    at com.mongodb.ReplicaSetStatus$Updater.run(ReplicaSetStatus.java:275)
|#]

[#|2011-04-22T17:49:41.676+0900|SEVERE|glassfish3.1|com.mongodb.ReplicaSetStatus|_ThreadID=48;_ThreadName=Thread-1;|can't update node: 127.0.0.1:27017
java.io.IOException: couldn't connect to …
Run Code Online (Sandbox Code Playgroud)

java spring glassfish mongodb

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

将较长的响应时间记录为 JMeter 中的故障

我正在使用 JMeter 和 HTTP 请求采样器来加载测试 Web API

有谁知道是否有一种方法可以配置 JMeter,以便在请求时间超过某个阈值(例如 1000 毫秒)时将请求记录为失败

现在,如果仅在响应为 500 或其他内容时记录错误。

web-services jmeter

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