小编Per*_*com的帖子

使用iconv将UTF8转换为UTF16

当我使用iconv从UTF16转换为UTF8时,一切都很好,反之亦然,它不起作用.我有这些文件:

a-16.strings:    Little-endian UTF-16 Unicode c program text
a-8.strings:     UTF-8 Unicode c program text, with very long lines
Run Code Online (Sandbox Code Playgroud)

编辑器中的文本看起来没问题.当我运行这个:

iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16.strings
Run Code Online (Sandbox Code Playgroud)

然后我得到这个结果:

b-16.strings:    data
a-16.strings:    Little-endian UTF-16 Unicode c program text
a-8.strings:     UTF-8 Unicode c program text, with very long lines
Run Code Online (Sandbox Code Playgroud)

file实用程序不显示预期的文件格式,并且文本在编辑器中也不好看.可能是iconv无法创建正确的BOM吗?我在MAC命令行上运行它.

为什么b-16不是正确的UTF-16LE格式?还有另一种方法将utf8转换为utf16吗?

下面将详细阐述.

$ iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16le-BAD-fromUTF8.strings
$ iconv -f UTF-8 -t UTF-16 a-8.strings > b-16be.strings 
$ iconv -f UTF-16 -t UTF-16LE b-16be.strings > b-16le-BAD-fromUTF16BE.strings

$ …
Run Code Online (Sandbox Code Playgroud)

linux unicode macos command-line

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

NSTextField在自定义NSWindow中无法编辑

嗨,大家好,

如果我在控制器的视图中创建NSTextField,那么一切都很好 - 该字段是可编辑的.不幸的是,我必须在新的自定义NSWindow中创建NSTextField.我的代码产生一个看起来没有焦点的字段(文本选择是灰色的)并且不可编辑(没有光标,也没有对键击的反应).我可以用鼠标改变文本选择,但这就是全部.

我是否必须让NSWindow接收击键?

感谢你的帮助, - 约瑟夫

      NSRect windowRect = [[self.window contentView] frame] ;
      NSWindow* uiWindow          = [[NSWindow alloc]  initWithContentRect:windowRect
                    styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered defer:YES];
      [uiWindow setBackgroundColor: [NSColor redColor/*clearColor*/]];
      [uiWindow setOpaque:NO];

      NSView* uiView = [[[NSView alloc] initWithFrame:NSMakeRect(0, 0, windowRect.size.width, windowRect.size.height)] autorelease];
      [uiView translateOriginToPoint:NSMakePoint(100, uiView.bounds.size.height/2)];
      uiView.wantsLayer = YES;

      [uiWindow setContentView:uiView];

      NSTextField *textField;
      textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 800, 80)];
      [textField setFont:[NSFont fontWithName:@"Helvetica Bold" size:60]];
      [textField setStringValue:@"My Label"];
      [textField setBezeled:YES];
      [textField setDrawsBackground:YES];
      [textField setEditable:YES];
      [textField setSelectable:YES];
      [textField setEnabled:YES];

      [uiView addSubview:textField];


// THIS …
Run Code Online (Sandbox Code Playgroud)

macos user-interface xcode cocoa objective-c

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

Admob Ads应用偶尔会在IllegalArgumentException上崩溃

我尝试将AdMob广告和GooglePlay IAP集成到干净的(hello world)cocos2d-js 3.5项目中.

偶尔(每5次运行)应用程序崩溃并显示下面的异常.当我集成IAP时,这种行为就开始了.清洁AdMob集成很好(或者至少被认为是).

到目前为止,我只做了Java部分(除主屏幕外没有调用cocos代码).我确实将google-play-services_lib升级到23版.

日志转储:

E/AndroidRuntime(27040): java.lang.IllegalArgumentException: null reference
E/AndroidRuntime(27040):    at com.google.android.gms.common.internal.d.b(SourceFile:45)
E/AndroidRuntime(27040):    at com.google.android.gms.ads.internal.g.ao.a(SourceFile:60)
E/AndroidRuntime(27040):    at com.google.android.gms.ads.internal.t.b.a(SourceFile:766)
E/AndroidRuntime(27040):    at com.google.android.gms.ads.internal.t.m.run(SourceFile:43)
E/AndroidRuntime(27040):    at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(27040):    at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(27040):    at android.os.Looper.loop(Looper.java:149)
E/AndroidRuntime(27040):    at android.app.ActivityThread.main(ActivityThread.java:5257)
E/AndroidRuntime(27040):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27040):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(27040):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
E/AndroidRuntime(27040):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
E/AndroidRuntime(27040):    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

任何提示?如果您发现它有用,我可以发布一些代码片段...

更新:

德米特里提到,这可能是谷歌方面的错误.我可以在崩溃前看到这些安全警告.它表明导致广告的错误是"坦克世界"

W/Ads     (21547): JS: The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from http://lh3.googleusercontent.com/mTcg18XIu-LbM4ovcCpet1zMpdkt1QKIZpM7RhdBpH7fjlLFvSRn56yxbh3i92FiHmjLx54rCg.
W/Ads     (21547):  (https://googleads.g.doubleclick.net/mads/gma:0)
I/chromium(21547): [INFO:CONSOLE(0)] "The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from …
Run Code Online (Sandbox Code Playgroud)

android admob cocos2d-x google-play-services cocos2d-js

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

使用std :: function参数重载运算符

我正在研究多种类型的地图持有者.它适用于所有原始类型,也适用于结构,例如Point.但是,如果我想将std :: function添加为另一个受支持的类型(用于回调),那么编译器会抱怨:

MT.cpp:426:15:没有可行的重载'='

MT.h:31:7:候选函数(隐式复制赋值运算符)不可行:第一个参数没有从'(lambda at MT.cpp:426:17)'到'const sharkLib :: MT'的已知转换

MT.h:31:7:候选函数(隐式移动赋值运算符)不可行:第一个参数没有从'(lambda at MT.cpp:426:17)'到'sharkLib :: MT'的已知转换

我实际上并不重载=运算符,而是[]使用每个受支持类型的专用构造函数重载.

.H

protected: 
    map<string,MT> valueMap;

public:
    MT (int value);
    MT (std::function<void(Ref*)> ccb);
    virtual MT& operator[] (const char* key);
Run Code Online (Sandbox Code Playgroud)

的.cpp

MT::MT (int value)
{
    this->type = ValueType::intValue;
    this->value.int_ = value;
}

MT::MT (std::function<void(Ref*)> value)
{
    this->type = ValueType::ccbValue;
    this->value.ccb_ = value;
}

MT& MT::operator[] (const char* key)
{
    return this->valueMap[key];
}
Run Code Online (Sandbox Code Playgroud)

用法

MT mt;

mt["int"] = 1;
mt["ccb"] = [](Ref *){ CCLOG("Pressed"); …
Run Code Online (Sandbox Code Playgroud)

c++ lambda overloading operator-overloading c++11

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

如何修复因应用程序的Info.plist中缺少TVTopShelfImage.TVTopShelfPrimaryImageWide而导致的错误ITMS-90513

详细的错误描述:

ERROR ITMS-90513:"缺少Info.plist密钥.您的应用程序在'Payload/xxx.app'中的Info.plist必须包含'TVTopShelfImage.TVTopShelfPrimaryImageWide'密钥."

xcode tvos

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