小编Dev*_*s50的帖子

当使用Openfire在两个iOS设备之间聊天时(使用MySQL数据库),Emoji不在离线聊天中工作

我有Openfire的问题,特别是对表情符号字符的支持.我在互联网上搜索发现,为了支持表情符号,我必须将数据库和表的编码和校对更改为UTF-8 unicode(utf8mb4).我已经使用以下SQL命令完成了这项工作:

SET NAMES utf8mb4;  
ALTER DATABASE openfire CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  
ALTER TABLE ofOffline CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
Run Code Online (Sandbox Code Playgroud)

所以在上面的语句中,我正在更改数据库和表的字符集和排序规则.接下来,我读到我应该更改JDBC驱动程序以支持unicode.我的系统属性中的"database.defaultProvider.serverURL"条目具有以下值(使用Openfire管理网页):

jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
Run Code Online (Sandbox Code Playgroud)

当我在两个在线用户之间用表情符号发送消息时,它可以完美无瑕.当邮件的收件人处于脱机状态时,邮件将存储到数据库中,这就是出错的地方:表情符号未正确存储在数据库中(它存储为两个问号).

我的CREATE TABLE发言如下:

CREATE TABLE `ofMessageArchive` (
  `messageID` bigint(20) DEFAULT NULL,
  `conversationID` bigint(20) NOT NULL,
  `fromJID` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `fromJIDResource` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `toJID` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `toJIDResource` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `sentDate` bigint(20) NOT NULL,
  `stanza` mediumtext COLLATE utf8mb4_unicode_ci,
  `body` mediumtext COLLATE utf8mb4_unicode_ci, …
Run Code Online (Sandbox Code Playgroud)

mysql unicode xmpp openfire emoji

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

与 cURL 的会话

我想我有一个非常简单的问题。我目前正在开发一个 API,您必须先登录才能使用它。登录通过 http 请求进行,因此要登录,您将访问

http://myapi.com/login.php?email=mail@mail.com&password 
Run Code Online (Sandbox Code Playgroud)

例如。

当电子邮件和密码正确时,我设置一些会话变量并启动会话:

session_start();
$_SESSION['idUser'] = $row['id'];
$_SESSION['email'] = $row['email'];
print(json_encode(array("authenticated" => true)));
Run Code Online (Sandbox Code Playgroud)

但是,当我访问 api 并通过 cURL 从终端发出请求(而不是登录)时,它说我没有获得授权,而我第一次执行了登录请求。在另一个页面上的每个 api 调用中,我都会检查会话变量。如果设置了,则用户已登录:

function checkSession()
{
    session_start();
    if(!isset($_SESSION['idUser']) || !isset($_SESSION['email']))
    {
            print json_encode(array("error" => "Not authorized"));
            exit();
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么说我没有权限?当我从网络浏览器访问页面时,一切正常。

谢谢!

php curl get request

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

在发出xml Ajax请求时获取错误412

我最近开始使用JQTouch制作基于Web的应用程序.在这个应用程序中,当按下一个按钮时,我正在制作一个ajax请求,从我运行Apache的Linux服务器获取一个xml文件.当我通过wifi运行我的应用程序时,一切都运行良好.当我超过3克并按下按钮时,它也会加载.但是当我再次按下按钮时,我收到错误412的警报:前提条件失败.我在互联网上搜索了这个错误,我发现我必须在我的服务器上禁用mod_security,但这并不能解决错误:(

这是我的ajax请求:

$.ajax(
{
    type: "POST",
    cache: false,
    url: "http://draughtsonline.no-ip.org/ArtObject/catalogus/catalogus.xml",
    dataType: "xml",
    success: function(xml) 
    {
        // do stuff with the xml file
    },
    error: function(xhr, ajaxOptions, thrownError)
    {
        alert(xhr.status);
        alert(thrownError);
    },
    async: false
});
Run Code Online (Sandbox Code Playgroud)

我真的不知道它有什么问题.有人可以帮帮我吗?

提前致谢!

xml ajax jquery

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

使用Passbook API发送推送通知

我正在尝试使用Passbook API发送一些推送通知.我创建了以下发送给APNS服务器的JSON对象:

$payload = json_encode(array('aps' => array('alert' => 'Hello World!')));
Run Code Online (Sandbox Code Playgroud)

但是,此消息未到达.我一直在互联网上搜索使用Passbook时如何做到这一点,但我找不到它.当我发送这样的空载荷时:

$payload = json_encode(new ArrayObject());
Run Code Online (Sandbox Code Playgroud)

(更新)通知到达并且通过更新.

那么,有谁知道我应该如何向APNS服务器发送自定义消息?

提前致谢!

php json payload apple-push-notifications passbook

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

在数组中获取N个最小连续块

我目前正在解决以下问题:

给定一个M个正数的数组,我需要得到N个具有一定长度的连续数字块.例如,当我有数组时:

6 9 3 2 8 1 6 9 7

当我需要找到一个长度为3的块时,解决方案是[3,2,8],它的最小总和为13.当我需要找到两个块时,算法应该给出[3,2,8]和[1,6,9]因为这些块中所有元素的总和是最小的(29).假设序列的长度总是严格大于块长度的N倍(因此始终存在解决方案).

我认为这个问题可以通过使用DP解决,但我目前看不出如何.我很难找到子问题之间的经常性关系.有人能帮我一把吗?

提前致谢!

arrays algorithm dynamic-programming

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

UIVext中的UITextView没有调整大小

我有一个名为_containerView的UIView,在这个UIView里面我有一个名为_codeTextView的自定义UITextView.加载应用程序时,这些视图占据整个屏幕,但是,当键盘出现时,我希望屏幕调整大小.

当键盘出现时我必须遵循以下方法:

- (void)keyboardAppears:(NSNotification *)notification
{
    _containerView.frame = CGRectMake(0, 0, 320, 216.0f);
    _codeTextView.frame = CGRectMake(0, 30, 290, 216.0f);
}
Run Code Online (Sandbox Code Playgroud)

containerView被正确调整大小,但是其中的_codeTextView没有调整大小,我真的不知道为什么它没有调整大小.我已经尝试过更改各种选项,它让我发疯:(

谁能帮助我?

提前致谢!

xcode resize objective-c uitextview uiview

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

在c ++中指向同一块内存的数组?

我有一个奇怪的问题.我在C++中有以下代码:

int grid[h][w]; int dp[h][w]; int p[h][w];

for(int y = 0; y < h; y++)
    for(int x = 0; x < w; x++)
        cin >> grid[y][x];

// base case
for(int y = 0; y < h; y++) dp[y][0] = grid[y][0];


// fill rest
for(int x = 1; x < w; x++)
{
    for(int y = 0; y < h; y++)
    {
        dp[y][x] = min(dp[y][x-1], min(dp[(y-1)%h][x-1], dp[(y+1)%h][x-1])) + grid[y][x];
    }
}

cout << "dp: " << endl;
for(int y = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ memory arrays memory-management dynamic-programming

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

使用SecKeyEncrypt进行RSA加密会产生错误-4(errSecUnimplemented)

我正在尝试使用iOS上的安全框架使用RSA加密一些数据.我想加密一个简单的base64编码字符串,如下所示:

NSData *data = [[NSData alloc] initWithBase64EncodedString:@"aGFsbG8=" options:0x0];
NSData *encrypted = [pair encrypt:data];
Run Code Online (Sandbox Code Playgroud)

pair变量保存对使用前成功生成的私钥和公钥的引用SecKeyGeneratePair.

加密函数如下所示:

- (NSData *)encrypt:(NSData *)data {
    void *buffer = malloc([self blockSize] * sizeof(uint8_t));
    memset(buffer, 0x0, [self blockSize]);
    size_t ciphertextBufferLength = [data length];
    OSStatus res = SecKeyEncrypt([self keyRef], 0x1, [data bytes], [data length], &buffer[0], &ciphertextBufferLength);
    NSLog(@"Result of encryption: %d", res);
    return [NSData dataWithBytesNoCopy:buffer length:[self blockSize] freeWhenDone:YES];
}
Run Code Online (Sandbox Code Playgroud)

实施[self blockSize]非常简单:

- (unsigned long)blockSize {
    return SecKeyGetBlockSize(keyRef);
}
Run Code Online (Sandbox Code Playgroud)

我用以下函数生成我的键:

- (BOOL)generateNewKeyPairOfSize:(unsigned int)keySize
{ …
Run Code Online (Sandbox Code Playgroud)

security encryption cryptography rsa ios

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

当键盘弹出自动布局时调整UITextView的大小

我想在键盘出现时调整UITextView的大小,但我似乎无法做到这一点.我在其中创建了一个带有UITextView的视图.在代码中,我想手动调整此文本视图的高度.我这样做:

_textView.translatesAutoresizingMaskIntoConstraints  = NO;

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:_textView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:216.0f];
[_textView addConstraint:constraint];
Run Code Online (Sandbox Code Playgroud)

在Interface Builder中,我说文本视图和superview之间的边距可以大于或等于0.

当我运行应用程序时,它会给出错误,即不能同时满足约束:

"<NSLayoutConstraint:0x886e550 V:[UITextView:0x7b0fa00(216)]>",
"<NSLayoutConstraint:0x886f7c0 UITextView:0x7b0fa00.bottom == UIView:0x886e3c0.bottom>",
"<NSLayoutConstraint:0x886f700 V:|-(0)-[UITextView:0x7b0fa00]   (Names: '|':UIView:0x886e3c0 )>",
"<NSAutoresizingMaskLayoutConstraint:0x71a2d10 h=--- v=--- V:[UIWindow:0x8a792f0(480)]>",
"<NSAutoresizingMaskLayoutConstraint:0x71a1490 h=-&- v=-&- UIView:0x886e3c0.height == UIWindow:0x8a792f0.height - 20>"


Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x886e550 V:[UITextView:0x7b0fa00(216)]>
Run Code Online (Sandbox Code Playgroud)

我不确定如何确保满足所有约束.有人能帮我一把吗?

谢谢!

layout xcode objective-c ios

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