小编chm*_*ike的帖子

std :: wcout << L"élève"的意外输出; 在Windows Shell中

在测试一些函数来转换wchar_t和utf8之间的字符串时,我在Visual C++ express 2008中遇到了以下奇怪的结果

std::wcout << L"élève" << std::endl;
Run Code Online (Sandbox Code Playgroud)

打印出"ÚlÞve:",这显然不是预期的.

这显然是一个错误.怎么可能 ?我怎么想处理这样的"功能"?

c++ unicode wchar-t mojibake

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

将url编码的字符串转换为python unicode字符串

我有以下形式编码的字符串:La + Cit%C3%A9 + De + la + West,我存储在python中的SQLite VARCHAR字段中.

这些显然是转换为urlencoded字符串的UTF-8编码二进制字符串.问题是如何将其转换回unicode字符串.s ='La + Cit%C3%A9 + De + la + West'

我使用了urllib.unquote_plus(s)python函数,但它没有将%C3%A9转换为unicode char.我看到这个'LaCitédela West'而不是预期的'LaCitéDela West'.

我在Ubuntu上运行我的代码,而不是Windows,编码是UTF-8.

python unicode

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

如何解释 os.FileMode 的显示值?

我有一个程序试图过滤 NamedPipe 文件。由于它没有按预期工作,所以我打印了结果,但对输出感到惊讶。你能解释一下吗?

\n\n
package main\n\nimport (\n    "io/ioutil"\n    "log"\n    "os"\n)\n\nfunc main() {\n    files, err := ioutil.ReadDir(".")\n    if err != nil {\n        log.Fatal(err)\n    }\n    for _, info := range files {\n        log.Printf("file: %s mode: %x\\n", info.Name(), info.Mode()&os.ModeNamedPipe)\n        log.Printf("file: %s mode: %v\\n", info.Name(), info.Mode()&os.ModeNamedPipe)\n        log.Printf("file: %s mode: %v\\n", info.Name(), info.Mode()&os.ModeNamedPipe != 0)\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这输出

\n\n
2020/02/06 18:06:46 file: main.go mode: 2d2d2d2d2d2d2d2d2d2d\n2020/02/06 18:06:46 file: main.go mode: ----------\n2020/02/06 18:06:46 file: main.go mode: false\n2020/02/06 18:06:46 file: status.kch mode: 702d2d2d2d2d2d2d2d2d\n2020/02/06 18:06:46 file: status.kch mode: p---------\n2020/02/06 …
Run Code Online (Sandbox Code Playgroud)

go

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

如何中止网络.在Go中拨打电话?

我有一个客户端尝试连接到服务器.

我需要能够终止客户端并中止此拨号尝试.这可能吗 ?我怎么能这样做?

超时显然超过30秒,因为测试阻止直到30秒过去而没有拨号呼叫失败.

我们可以自己指定超时吗?

go

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

关闭Go频道时进入竞争状态

以下Go代码示例在行c <- byte(0)和之间具有Race条件close(c).运行代码时会发出信号go test -race.

func TestRace(t *testing.T) {
    var c = make(chan byte, 20)
    go func() {
        defer func() {
            if r := recover(); r == nil {
                t.Error("expected panic error")
            }
        }()
        for i := 0; i < 25; i++ {
            c <- byte(0)
        }
        t.Error("expected a panic")
    }()
    close(c)
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能避免这种竞争条件?

编辑:根据他的评论中的Icza建议,这是解决方案:

func TestRace(t *testing.T) {
    var c = make(chan byte, 20)
    var done = make(chan struct{})
    go func() { …
Run Code Online (Sandbox Code Playgroud)

concurrency channel go race-condition goroutine

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

如何将表单数据提交到后端?

免责声明:我是一名后端程序员,我希望尽量减少网页中的 javascript 代码。

我正在考虑使用此处给出的登录表单作为示例。在这个例子中,我们有这个

<form class="ui large form">
  <div class="ui stacked segment">
    <div class="field">
      <div class="ui left icon input">
        <i class="user icon"></i>
        <input type="text" name="email" placeholder="E-mail address">
      </div>
    </div>
    <div class="field">
      <div class="ui left icon input">
        <i class="lock icon"></i>
        <input type="password" name="password" placeholder="Password">
      </div>
     </div>
     <div class="ui fluid large teal submit button">Login</div>
  </div>
  <div class="ui error message"></div>
</form>
Run Code Online (Sandbox Code Playgroud)

登录按钮只是一个什么都不做的 div。表单标签中没有动作参数,也没有提交类型输入标签。

如何让页面将输入字段值发送回后端服务器?

请注意,在源页面中可以看到一些 javascript 代码,用于检查字段的有效性。但是没有关于如何将电子邮件和密码发送到后端并加载登录页面的提示。

html javascript forms user-interface frontend

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

如何让我的网页看起来好用IE7 +?

我最近重构了我的网站以使用HTML5.它适用于大多数浏览器,显然,IE7和IE8除外.

它看起来像是由于使用了<header>,<section>和<article>标签,这些标签显然被IE7忽略了.我的css为这些定义了特定的标记格式化子类.

header { color: #fff;  background: url("background1.jpg"); 
        padding: 10px 40px 20px 40px; margin-bottom: 20px; }
header a { color: #fff; text-decoration: none; outline: none; }
header a:hover { color: #fff; text-decoration: underline; }
header h1 { color: #FFFFFF; font-weight: bold; font-size: 30px; 
          padding-bottom: 20px; padding-top: 0px; }
header h2 { color: #FFFFFF; font-weight: bold; font-size: 16px; padding-bottom: 10px; }
header hr { margin: 10px 10px 0px 0px; }
header .copyright { font-style: italic; font-weight: bold; 
    padding-left: 30px; padding-right: 0px; …
Run Code Online (Sandbox Code Playgroud)

css html5 internet-explorer

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

为什么子进程“sleep 10”不会终止?

我需要测试一个进程是否终止,我所拥有的只是它的 pid 号。为此,我测试伪文件“/proc/<pid>”是否存在。

为这个函数编写一个测试,我注意到这个过程没有按预期终止。

对于测试,我将“sleep 10”作为子进程运行,它应该运行 10 秒。开始这个过程后,我轮询伪文件“/proc/<pid>”是否消失。该伪文件永远不会消失,也不会检测到子进程的终止。

测试golang playground的代码,重现问题:https : //play.golang.org/p/fb4CbXkIjh3

我检查了该进程是否已创建,并且 pid 是否正确。在检查过程中看到它变成了<defunct>。它没有因此被删除。

问题如下:

  1. 为什么子进程不终止?
  2. 如何更改代码以使其终止?
package main

import (
    "fmt"
    "log"
    "os"
    "os/exec"
    "strconv"
    "time"
)

func main() {
    fmt.Println("Hello, playground")

    cmd := exec.Command("sleep", "10")
    if err := cmd.Start(); err != nil {
        log.Fatal("unexpected error:", err)
    }
    pidStr := strconv.Itoa(cmd.Process.Pid)
    log.Println("sleep pid:", pidStr)

    for {
        if _, err := os.Stat("/proc/" + pidStr); os.IsNotExist(err) {
            log.Println("detect termination of /proc/" + pidStr)
            return
        }
        log.Println("pgm /proc/" + …
Run Code Online (Sandbox Code Playgroud)

unix go

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