我想将QString转换为utf8或latin1 QByteArray,但今天我将所有内容都视为utf8.
而我正在使用高于0x7f的latin1的较高段中的一些字符来测试它,其中德语ü是一个很好的例子.
如果我喜欢这样:
QString name("\u00fc"); // U+00FC = ü
QByteArray utf8;
utf8.append(name);
qDebug() << "utf8" << name << utf8.toHex();
QByteArray latin1;
latin1.append(name.toLatin1());
qDebug() << "Latin1" << name << latin1.toHex();
QTextCodec *codec = QTextCodec::codecForName("ISO 8859-1");
QByteArray encodedString = codec->fromUnicode(name);
qDebug() << "ISO 8859-1" << name << encodedString.toHex();
Run Code Online (Sandbox Code Playgroud)
我得到以下输出.
utf8 "ü" "c3bc"
Latin1 "ü" "c3bc"
ISO 8859-1 "ü" "c3bc"
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我到处都得到了unicode 0xc3bc,我希望在第2步和第3步得到Latin1 0xfc.
我的猜测是我应该得到这样的东西:
utf8 "ü" "c3bc"
Latin1 "ü" "fc"
ISO 8859-1 "ü" "fc"
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
/谢谢
链接到一些字符表:
此代码是在基于Ubuntu 10.04的系统上构建和执行的.
$> …Run Code Online (Sandbox Code Playgroud) 我有一个使用的WPF表单ModelView.这ModelView有一个List项目.问题是,当我将项目更改为列表时,表单继续具有旧项目.
有谁知道我怎么能注意到他必须用ModelView?更新它的数据的形式?
是否可以定义IComparer的匿名实现?
我相信Java允许内联定义匿名类 - C#?
看看这段代码我想定义一个自定义IComparer内联
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
IComparer<TKey> comparer
)
Run Code Online (Sandbox Code Playgroud) 我发现使用以下构造检查对象是否为"空"非常方便:
l=[]
if l:
do_stuff()
Run Code Online (Sandbox Code Playgroud)
对于标准python列表,if仅当列表不为空时才会执行.
我的问题是,我如何为自己的对象实现相同的想法?
我有一个MVC3和EF 4 Code First应用程序,它被配置为在模型更改时通过将DB Initializer设置为a来更改数据库DropCreateDatabaseIfModelChanges<TocratesDb>,其中TocratesDb是我的派生DbContext.
我现在通过向类添加属性对模型进行了更改,但是当EF尝试删除并重新创建数据库时,我收到以下错误:
Cannot drop database "Tocrates" because it is currently in use.
Run Code Online (Sandbox Code Playgroud)
我绝对没有在这个数据库上打开任何其他连接.我假设我的cDbContext仍然与数据库有一个开放的连接,但我该怎么办呢?
新:现在我的问题是如何根据模型重新创建数据库.通过使用更通用的IDatabaseInitializer,我失去了它并且必须自己实现它.
如何删除字符串的每个第n个元素?
我猜你会drop以某种方式使用这个功能.
像这样丢弃第一个n,你怎么能改变这个,所以只丢下第n个,然后是第n个,等等,而不是全部?
dropthem n xs = drop n xs
Run Code Online (Sandbox Code Playgroud) 我刚开始在vim中使用拼写检查功能.根据文档,zg将当前单词添加到第一个拼写文件中.
是否建议创建一个自己的空拼写文件,这样英文拼写文件就不会乱七八糟?如果是这样:我如何创建一个空的拼写列表?一个空的适当命名的文件产生"E757:这看起来不像一个拼写文件".
我在C中编写了一个悬挂指针的程序.
#include<stdio.h>
int *func(void)
{
int num;
num = 100;
return #
}
int func1(void)
{
int x,y,z;
scanf("%d %d",&y,&z);
x=y+z;
return x;
}
int main(void)
{
int *a = func();
int b;
b = func1();
printf("%d\n",*a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
即使指针悬空,我输出为100.
我在上面的函数中做了一个改动func1().现在我在编译期间分配值,y而z不是像上面的程序那样从标准输入中获取和从中获取值.
我重新定义func1()如下:
int func1(void)
{
int x,y,z;
y=100;
z=100;
x=y+z;
return x;
}
Run Code Online (Sandbox Code Playgroud)
现在输出是200.
有人可以解释一下上述两项产出的原因吗?
我的UITableView需要在第一行中有一个图像.有什么问题?当用户向下滚动桌面视图时,他向上滚动,在图像上方有其他行的信息!你知道为什么吗?
这是我的代码(我使用的是UITableViewCell)
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row != 0) {
return 73.0;
}
else {
return 109.0;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
if (indexPath.row == 0) {
[[NSBundle mainBundle] loadNibNamed:@"customcell_3" owner:self options:NULL];
cell = cellaNib_with_image;
}
else {
[[NSBundle mainBundle] loadNibNamed:@"customcell_2" owner:self options:NULL];
cell = cellaNib;
}
}
if (indexPath.row == 0) {
UIImage *rowBackground;
UIImage *selectionBackground;
rowBackground …Run Code Online (Sandbox Code Playgroud)