小编Lok*_*oki的帖子

MySQL utf8mb4,保存Emojis时出错

我尝试从MySQL数据库中的服务中保存用户的名称.这些名字可以包含表情符号(仅举例)

搜索了一下后,我发现这个stackoverflow链接到本教程.我按照步骤操作,看起来一切都配置正确.

我有一个数据库(charset和collat​​ion设置为utf8mb4(_unicode_ci)),一个名为TestTable的表,也是这样配置的,以及一个"Text"列,以这种方式配置(VARCHAR(191)utf8mb4_unicode_ci).

当我尝试保存表情符号时,我收到一个错误:

Example of error for shortcake ():
    Warning: #1300 Invalid utf8 character string: 'F09F8D'
    Warning: #1366 Incorrect string value: '\xF0\x9F\x8D\xB0' for column 'Text' at row 1
Run Code Online (Sandbox Code Playgroud)

我能够正确保存的唯一表情符号是太阳☀️

虽然我没有尝试所有这些都是诚实的.

我在配置中缺少什么?

请注意:所有保存测试都不涉及客户端.我使用phpmyadmin手动更改值并保存数据.因此,服务器正确保存emojis 之后,我将负责正确配置客户端.

另一个旁注:目前,在保存表情符号时,我或者得到上面的错误,或者没有错误,数据Username 将被存储为Username ????.错误或无错误取决于我保存的方式.当通过SQL语句创建/保存时我用问号保存,当编辑内联时我用问号保存,当使用编辑按钮进行编辑时,我得到错误.

谢谢

编辑1: 好吧所以我认为我发现了问题,但不是解决方案.看起来数据库特定变量没有正确更改.

当我在我的服务器上以root用户身份登录并读出变量(全局)时:
使用的查询:SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4 …
Run Code Online (Sandbox Code Playgroud)

mysql emoji utf8mb4

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

具有不同大小的多维数组

我只是有一个想法来测试一些东西并且它有效:

    String[][] arr = new String[4][4];

    arr[2] = new String[5];

    for(int i = 0; i < arr.length; i++)
    {
        System.out.println(arr[i].length);
    }
Run Code Online (Sandbox Code Playgroud)

输出显然是:

4
4
5
4
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  • 这是编码的好坏吗?
  • 这有什么用呢?
  • 最重要的是,有没有办法在声明本身中创建这样的结构?
  • 还有......为什么甚至可以做到?

java arrays multidimensional-array

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

如何在Outlook中创建电子邮件并使其对用户可见

我想使用Outlook和OLE客户端创建一个带有Java应用程序的电子邮件.

我搜索了一些例子,发现了不少.他们都以同样的方式开始:

创建显示,外壳,OLE框架和OLE客户端站点.

但是我在这几个步骤中遇到错误:

Display display = new Display();
Shell shell = new Shell(display);

shell.setText("Outlook Automation");
shell.setLayout(new FillLayout());

OleFrame frm = new OleFrame(shell, SWT.NONE);

OleClientSite site = new OleClientSite(frm, SWT.NONE,
                "Outlook.Application");
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Exception in thread "main" org.eclipse.swt.SWTException: Failed to create Ole Client. result = -2147221164
at org.eclipse.swt.ole.win32.OLE.error(OLE.java:302)
at org.eclipse.swt.ole.win32.OleClientSite.<init>(OleClientSite.java:242)
at outlooktest.Main.main(Main.java:27)
Run Code Online (Sandbox Code Playgroud)

我不知道OLE,我不确定我做错了什么.我缺少一些依赖吗?有人知道这个错误是什么吗?我用谷歌搜索错误代码,但没有找到任何东西.

编辑

好吧,如果没有人知道为什么OLE不适合我,我还有另外一个问题.是否有可能,或者是否有一个库,可以创建一个Outlook电子邮件并进行设置(主题,正文等)但不发送它但是让用户可以看到更改内容?

编辑2

x86和x64 jar文件没有运行,同样的错误.我还得到了最新版本的SWT for x86和x64.操作系统也是x64和java,所以我不能使用x86 SWT库.使用x64时会出现上述错误.Outlook版本为15(Outlook 2013).

希望这有帮助吗?

我通过Processbuilder创建了电子邮件,但只能使用mailto:参数.这里的问题是:

  • 我想跟踪进程的状态.我想知道电子​​邮件什么时候关闭/发送.
  • 我想将一张图片(BufferedImage)从剪贴板中插入到Body中,这对于mailto参数来说根本不可能.

java email outlook ole

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

如何在Windows上使用JNA操作Java内存

如何操纵Java的内存?我知道Java在它自己的JVM中运行,所以它无法直接访问进程内存.

我听说过JNA可以用来获取操作系统和我的Java代码之间的接口.

让我们说我想操纵纸牌的得分.尝试将是这样的:

  1. 得到纸牌的过程
  2. 获得纸牌记忆
  3. 找出分数存储在内存中的位置
  4. 在地址中写下我的新值

Java本身无法访问该内存,因此如何使用JNA执行此操作?

java memory jna

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

UDP通过Internet.它是如何工作的?

当我正在编程网络聊天(java,但不应该对问题产生影响),并且想要使用UDP时,我遇到了它无法通过互联网工作的问题.经过一番研究后,我发现你必须为激活的特定端口进行端口转发.所以现在谈到我的问题:

UDP是否以不可配置的方式在Internet上工作?

例如,如果我要编写整个网络游戏,那么使用UDP是否有意义?或者我是否要求播放器激活Portforwarding并打开端口等?

什么时候使用UDP呢?为什么?

我实际上并不理解UDP的全部要点.

对于我的编程观点,我希望有一种方法可以直观地使用它.与创建DatagramSocket和创建一样DatagramPacket,使用数据和目的地配置数据包并通过互联网发送.

至于我的用户我不希望他们必须配置任何特定的东西,比如打开他们想要使用的确切端口等.我只是想让他们使用程序(服务器和客户端),它应该工作.

java networking udp network-programming nat

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

业务数据和身份的不同表或不同数据库

我通过Apress - Pro Asp.Net MVC 5和Identity Framework的免费章节阅读,现在,我想创建一个包含一些数据和身份的小型示例应用程序.

后来我想对Windows Azure进行测试部署.

现在,我应该为此应用程序创建一个单独的数据库,包含所有数据(产品,无论如何,IdentityData(用户帐户,Oauth链接...))还是创建两个数据库会更好?

我知道,如果我创建两个,我将能够为其他MVC应用程序使用相同的Identity-Data,但是对于MVC是否有某种最佳实践?

database asp.net-mvc-5 asp.net-identity

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