小编jos*_*hm1的帖子

字符串#code不能修复"UTF-8中的无效字节序列"错误

我知道关于这个错误有很多类似的问题,我已经尝试了很多没有运气的问题.我遇到的问题涉及字节\xA1并且正在抛出

ArgumentError:UTF-8中的无效字节序列

我试过以下但没有成功:

"\xA1".encode('UTF-8', :undef => :replace, :invalid => :replace,
    :replace => "").sub('', '')
"\xA1".encode('UTF-8', :undef => :replace, :invalid => :replace,
    :replace => "").force_encoding('UTF-8').sub('', '')
"\xA1".encode('UTF-8', :undef => :replace, :invalid => :replace,
    :replace => "").encode('UTF-8').sub('', '')
Run Code Online (Sandbox Code Playgroud)

每一行都为我抛出错误.我究竟做错了什么?

更新:

上述行仅在IRB中失败.但是,我修改了我的应用程序,使用相同的String#encode方法和参数对CVS文件的行进行编码,从文件中读取行时出现相同的错误(注意:如果对同一个字符串执行操作,它会起作用没有使用IO).

bad_line = "col1\tcol2\tbad\xa1"

bad_line.sub('', '') # does NOT fail
puts bad_line # => col1 col2    bad?

tmp = Tempfile.new 'foo' # write the line to a file to emulate real problem
tmp.puts bad_line
tmp.close

tmp2 = Tempfile.new …
Run Code Online (Sandbox Code Playgroud)

ruby unicode utf-8 ruby-1.9

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

nginx/fastcgi 504网关错误,增加fastcgi_read_timeout没有帮助

我需要超时,所以我可以在我的源代码上使用调试器.它正确地从nginx传递给fastcgi,但总是在60秒后超时.我已经改变了尽可能多的超时参数,在每次更改后重新启动nginx和fast-cgi并且没有任何效果.

我看到大多数用户指出这样的问题如何在Nginx上使用FastCGI防止网关超时.但是这个解决方案对我不起作用.

我增加的参数是:

  • fastcgi_read_timeout(上面的帖子说这解决了该用户的问题)
  • client_header_timeout
  • client_body_timeout
  • send_timeout

php fastcgi nginx

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

使用正则表达式匹配任何字符,直到达到子字符串?

我希望能够匹配特定的字符序列,从特定的子字符串开始,以特定的子字符串结束.如果在一条线上只有一个匹配的实例,那么我的正向前瞻性正则表达式会起作用,但如果一条线上应该有多个匹配则不行.我理解这是因为(.+)捕获所有内容,直到找到最后一个正向前瞻表达式.如果它能捕获所有内容直到找到第一个表达式,那就太好了.

这是我的正则表达式尝试:

@@FOO\[(.*)(?=~~)~~(.*)(?=\]@@)\]@@
Run Code Online (Sandbox Code Playgroud)

样本输入:

@@FOO[abc~~hi]@@    @@FOO[def~~hey]@@
Run Code Online (Sandbox Code Playgroud)

期望的输出:2个匹配,每个具有2个匹配的组(abc,hi)和(def,嘿).

实际输出:1与2组比赛(abc ~~ hi)@@ @@ FOO [def,嘿]

有没有办法获得所需的输出?

提前致谢!

c# regex vb.net

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

angularjs $ location.path仅在第二次单击时更新URL

我正在处理的网站有一个自定义CMS,我正在使用angularjs进行内联页面编辑.数据库存储用于生成页面的HTML,因此我无法严格使用客户端模板和模型.

我没有使用HTML5 pushState,因此URL类似于example.com/page#/widget/1/editexample.com/page#/widget/new,我当前的问题是当我提交表单进行编辑时一个小部件或添加一个小部件,然后我希望页面通过将HTML注入DOM并将URL更改为默认值来重新加载其内容,我正在尝试使用它$location.path('/').

我当前的实现有多个问题(您将在演示中看到),其中一个是在我的表单submit()回调中,更改$location.path只更改第二个表单按钮单击时的URL.我也尝试更改单击"删除"的URL,但这也不起作用.

http://jsfiddle.net/sZrer/1

customPage.controller('PageEditCtrl', function($scope, $http, $routeParams, $location, $route, $compile, PageState) {
    var widgetId = $routeParams.id || widgetCount + 1;

    $scope.pageState = PageState;
    $scope.widget = { id: widgetId, name: 'Widget ' + widgetId };
    $scope.submit = function() {
      if ($scope.widget.id > widgetCount) widgetCount += 1;
      setTimeout(function() {
        var element = $compile(genHtml())($scope);
        angular.element('#page-content').html(element);
        $location.path('/');
      }, 100);
    };
  });
Run Code Online (Sandbox Code Playgroud)

angularjs

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

RDS postgres 从 9.4 升级到 9.5,CPU 一直卡在 100% 几个小时

将我的 RDS postgres 从 9.4 升级到 9.5 后,我看到 CPU 保持在 100% 左右的时间超过 8 小时。

我看到相同的数据库查询,在我手动取消它们之前,过去需要 < 1 秒运行 10 分钟以上。

我不是在处理大型数据库。大多数被查询的表<10000行

CPU使用率

与正常情况相比,我的读取 IOPS 和写入 IOPS 非常低(主要是因为站点关闭并且我关闭了非关键服务。

我一直在关注pg_stat_activity活动查询,没有看到任何异常(除了过去需要 < 1 秒的长时间运行的查询)。

我确实从 9.5 升级到 9.6 只是为了它,但它没有帮助。

调试这个有什么建议吗?我很难过,许多网站都关闭了。

postgresql amazon-web-services amazon-rds

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