相关疑难解决方法(0)

Qt正则表达式中的土耳其语字符

我想用正则表达式验证QLineEdit的文本.它应该允许从a到z的字符加上A到Z加上土耳其字符(ğüşöçİĞÜŞÖÇ)加上0到9之间的数字.我搜索了我的问题并找到了两个解决方案,但两个都没有为我工作.在一个解决方案中它说"在regexp中包含土耳其字符",在另一个解决方案中它说"使用土耳其字符的unicodes"

下面是两个reqular表达式

QRegExp exp = QRegExp("^[a-zA-Z0-9?ü?öç??Ü?ÖÇ]+$");

QRegExp exp = QRegExp("^[a-zA-Z0-9\u00E7\u011F\u0131\u015F\u00F6\u00FC\u00C7\u011E\u0130\u015E\u00D6\u00DC]+$");
Run Code Online (Sandbox Code Playgroud)

上面的reqular表达式都不能验证名称'İSMAİL'.此外,我试过一个文本只包含土耳其字符('ğüşöçİĞÜŞÖÇ')但它无法验证.当我从两个文本中删除"İ"字符时,可以对其进行验证.我想问题可能与'İ'字符有关.

我该如何解决这个问题?

注意:我们在项目中使用Qt 4.6.3.

regex turkish qt

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

有没有一种在Visual Studio中编写UTF-8八位字节的简单方法?

我有一个问题,我需要在C++源代码中使用标准字符类型的UTF-8编码字符串,如下所示:

char* twochars = "\xe6\x97\xa5\xd1\x88";
Run Code Online (Sandbox Code Playgroud)

通常,如果我想写一个UTF-8字符,我需要使用上面的八位字节.Visual Studio中有什么东西(我使用VS 2013 Ultimate)可以让我只编写例如"ĄĘĆŻ"并自动将每个字符转换为多个UTF-8八位字节,如上例所示?或者我应该使用const wchar_t*并找到一个可以将宽字符串转换为UTF-8编码的标准字符串字符串的库?

如果没有这样的东西,你能为此建议任何外部软件吗?我真的不想浏览每个符号/非拉丁字母的字符映射.

对不起我的英文,提前致谢.

c++ encoding utf-8 visual-studio

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

QT无法写入unicode文件的unicode字符串

我正在使用QT Creator,创建了一个控制台应用程序.一切都是最新的.操作系统是Windows XP.

我创建了一个包含匈牙利字符的QString.大多数匈牙利字符不需要unicode,但是带有双斜线的字符需要unicode.

我尝试将QString内容写入文件,但我的unicode字符在文件中丢失了重音符号.换句话说,unicode信息在此过程中丢失了.

我的代码是吼叫.

#include <QtCore/QCoreApplication>
#include <QString>
#include <QTextStream>
#include <QDate>
#include <QFile>
using namespace std;


int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QString szqLine = "NON-UnicodeIsOK: áéüúöóí NEED-Unicode: ??";
    //These are Hungarian chars and require unicode. Actually, only the u & o, each having double
    //slashes for eccents require unicode encoding.

    //Open file for writing unicode chars to.
    QFile file("out.txt");
    if ( !file.open(QIODevice::WriteOnly | QIODevice::Text) ){
        return 1;
    }

    //Stream the QString text to …
Run Code Online (Sandbox Code Playgroud)

qt qt4

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

C++字符串上的<和>是否反映了字母顺序?

我有一个关于C++中字符串的字母顺序的问题.我们说我有两个字符串:

    string x="asd123";
    string y="asd136";
Run Code Online (Sandbox Code Playgroud)


我们可以用<或>运算符比较这些字符串吗?例如:我们可以说

    if(x>y)
    cout<<".....";
Run Code Online (Sandbox Code Playgroud)

这总是有效吗?谢谢.

c++ string

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

标签 统计

c++ ×2

qt ×2

encoding ×1

qt4 ×1

regex ×1

string ×1

turkish ×1

utf-8 ×1

visual-studio ×1