小编tex*_*nic的帖子

PHP:是否可以正确SUBSTR UTF-8字符串?

我(在SQLite数据库中)有以下字符串:

????? ? ??????? ?? ????? ????????, ??????? ? ???????????? ?????? ??????? ??????.

PHP使用正确显示该字符串print.我想获得这个字符串的前50个字符,即

????? ? ??????? ?? ????? ????????, ??????? ? ?????.

我尝试过使用substr和mb_substr,然后得到

????? ? ??????? ?? ????? ???,即只有28个字符.

在这里和其他地方读到mbstring的问题之后,我意识到这实际上是一个50字节的字符串(22个俄语字符= 44个字节加上5个空格加1个问号).

这有什么好的解决方案吗?我的所有字符串都是UTF-8,所以我当然可以自己编写一个子函数,通过检查每个字节的第一位等等.但这肯定是在之前完成的,对吧?

更新:我认为mb_substr无法正常工作,因为mb_detect_encoding() 无法正常工作.

php encoding substring utf-8

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

在Matlab中找到匹配两个条件的向量元素

我有一个矢量a = [1 5 3 4 2].我想找到a的所有元素,它们都是1<a<5.我怎么在Matlab中做到这一点?

就个人而言,我已经开发出一种解决方案,但它很麻烦:

a = [1 5 3 4 2];
ix = find(a>1);
ix = ix(find(a(ix)<5));
disp(a(ix))
Run Code Online (Sandbox Code Playgroud)

什么是更好的方式?

matlab find

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

如何打印Matlab的DURATION

Matlab最近推出了一种新的类型持续时间.所以我可以这样做:

>> d = datetime('12:10:00') - datetime('12:05:00')
d = 
   00:05:00
>> whos d
  Name      Size            Bytes  Class       Attributes
  d         1x1               128  duration  
Run Code Online (Sandbox Code Playgroud)

现在我想输出一些duration类型的计算结果,使用fprintf.但是duration既不是数字也不是字符串,也没有创建字符串的方法.我该怎么做才能fprintf接受它?

我在Matlab 2014b.

time matlab

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

Mercurial:如何摆脱"警告:xxxx使用revlog格式0"?

在使用Hg版本的小型项目工作了一段时间后,我今天验证了本地和中央Mercurial存储库.在本地我没有错误或警告,"存储库使用revlog格式1".但是我得到了中央存储库

repository uses revlog format 1
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
warning: `x' uses revlog format 0
warning: `xx' uses revlog format 0
warning: `xxx' uses revlog format 0
...
Run Code Online (Sandbox Code Playgroud)

(总共13种类型的警告).我可以摆脱这些警告吗?

mercurial

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

Mercurial:Windows和Linux之间的文件名中的非ascii字母问题

我在samba服务器上有一个中央Hg存储库,还有两个工作副本,一个在Ubuntu上,一个在Windows 7上.一切正常,直到我错误地将一个带有俄文字母的文件添加到项目中.我在Linux上做过.Mercurial乐意接受它,在Linux中,一切仍然有效.但是我发现我不能再将更改集拉到Windows了.因为hg pull我明白了

pulling from ...
searching for changes
adding changesets
transaction abort!
rollback completed
abort: empty or missing revlog for figures/interfDðÁsign.svg
Run Code Online (Sandbox Code Playgroud)

(该problematc文件名应为interfDеsign,用西里尔字母中它е').我已经改名为Linux中的文件,提交和推送的变化,甚至可以看到这种变化,如果我做hg in在Windows中.但我不能拉它!有没有办法纠正这个问题,并使存储库再次与Windows一起使用?

linux windows mercurial samba

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

简单的 MediaWiki 扩展调试

我正在尝试编写我的第一个 MediaWiki 扩展并且需要某种方法来调试它。最简单的方法是什么?显示消息、登录文件等就可以了。我只想慢慢地研究代码,看看它在哪里中断以及变量的内容是什么。

我试过(来自http://www.mediawiki.org/wiki/Manual:How_to_debug#Useful_debugging_functions

// ...somewhere in your code
if ( true ) {
    wfDebugLog( 'myext', 'Something is not right: ' . print_r( 'asdf', true ) );
}
Run Code Online (Sandbox Code Playgroud)

在 extensions/myext/myext.php 并添加到 LocalSettings.php

require_once( 'extensions/myext/myext.php' );
# debugging on
$wgDebugLogGroups = array(
     'myext'     => 'extensions/myext/myextension.log'
);
Run Code Online (Sandbox Code Playgroud)

但后来我的 Wiki 根本不起作用(错误 500)。将上述代码从 myext.php 中删除后,一切正常(在 myext.php 中使用 $wgExtensionCredits,我可以在 Special:Version 中看到 myext)。

这是正确的做法(那么错误是什么)还是有更好/更简单的开始方式?

debugging mediawiki

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

Python:从EXIF中提取西里尔字符串

我是Python的初学者,想开始学习它.也就是说,我想在一大堆家庭照片中纠正一些EXIF信息.首先,我想正确地从JPEG文件中获取这些信息.

其中一些人用EXIF写的标题.它可以通过例如获得

import pyexiv2
metadata = pyexiv2.ImageMetadata(filename)
metadata.read()
title = metadata['Exif.Image.XPTitle'] 
Run Code Online (Sandbox Code Playgroud)

我到目前为止.现在出现了问题.一些标题包含西里尔字母.如果我这样做,print title.human_value我会举个例子

`Милой Мамуле от Майи, 11 ÑÐ½Ð²Ð°Ñ€Ñ 1944.`
Run Code Online (Sandbox Code Playgroud)

同时print title,它是

<Exif.Image.XPTitle [Byte] = 28 4 56 4 59 4 62 4 57 4 32 0 28 4 48 4 60 4 67 4 59 4 53 4 32 0 62 4 66 4 32 0 28 4 48 4 57 4 56 4 44 0 32 0 49 0 49 0 32 0 79 …
Run Code Online (Sandbox Code Playgroud)

python string unicode encoding exif

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

具有唯一性检查的HashMap

我有一个包含几个键值列表的类.每个键(在列表中)应该是唯一的,所以我使用HashMap.当代码中的某个地方我向列表添加一个新项目时,我正在使用HashMap put(K, V).如果尝试添加具有已存在密钥的项目,我希望我的代码抛出异常.并且,因为这样的添加是在程序的许多地方执行的,所以我想避免在每个地方添加检查.所以应该是列表类本身不允许替换现有的键值对.

我想用我自己的一个扩展HashMap类,它将执行这样的检查并抛出异常.但是,HashMap put不会抛出异常,所以我也不能这样做.

实现这种行为的好方法是什么?我准备好用更好的东西替换HashMap,但我需要它在添加和检索项目时都要快.

更新: 感谢所有许多好建议.由于我是一个完整的Java新手,我现在需要学到很多才能选择最好的一个:)无论如何,我很感激在午餐休息时间有这么多选择!

java exception hashmap

5
推荐指数
3
解决办法
1220
查看次数

将数组值处理到结构数组的单个字段(在Matlab中)

我认为deal应该这样做,但事实并非如此,我找不到另一个好的解决方案.

我有一个阵列a = 1:2.我想将值1和2放入结构数组中,b如下所示:

b(1).a = 1
b(2).a = 2
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,[b(1:2).a] = deal(1:2)不处理值,而是将向量[1 2]放入a结构的每个字段b:

>> b(1)
ans = 
    a: [1 2]

>> b(2)
ans = 
    a: [1 2]
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了一些语法吗?

arrays matlab struct

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

使用Paramiko SSH设置virtualenv

我在Windows中使用Python和Django的经验有限,现在我想了解如何将代码部署到Ubuntu 16.04 LTS VPS。阅读了关于SE的各种教程和很多答案之后,我设法进行了很长时间(对我而言),但是现在我陷入了困境。

手动(通过腻子)我可以执行以下操作:

# check that Python 3.5 is installed
python3 --version  
# install pip
sudo -kS apt-get -y install python3-pip  
# upgrade pip to newest version
pip3 install --upgrade pip
# check result
pip3 --version  
# install venv
sudo -kS pip3 install virtualenv virtualenvwrapper 
# create venv
virtualenv ~/Env/firstsite  
# make sure venv is created 
ls -l ~/Env/firstsite/bin/python  # /home/droplet/Env/firstsite/bin/python3.5 -> python3
# switch on venv
source ~/Env/firstsite/bin/activate  # (firstsite) droplet@hostname:~$
# check that python3 is taken …
Run Code Online (Sandbox Code Playgroud)

python ssh ubuntu virtualenv paramiko

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