我尝试从MySQL数据库中的服务中保存用户的名称.这些名字可以包含表情符号(仅举例)
搜索了一下后,我发现这个stackoverflow链接到本教程.我按照步骤操作,看起来一切都配置正确.
我有一个数据库(charset和collation设置为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) 我只是有一个想法来测试一些东西并且它有效:
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)
所以我的问题是:
我想使用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:参数.这里的问题是:
如何操纵Java的内存?我知道Java在它自己的JVM中运行,所以它无法直接访问进程内存.
我听说过JNA可以用来获取操作系统和我的Java代码之间的接口.
让我们说我想操纵纸牌的得分.尝试将是这样的:
Java本身无法访问该内存,因此如何使用JNA执行此操作?
当我正在编程网络聊天(java,但不应该对问题产生影响),并且想要使用UDP时,我遇到了它无法通过互联网工作的问题.经过一番研究后,我发现你必须为激活的特定端口进行端口转发.所以现在谈到我的问题:
UDP是否以不可配置的方式在Internet上工作?
例如,如果我要编写整个网络游戏,那么使用UDP是否有意义?或者我是否要求播放器激活Portforwarding并打开端口等?
什么时候使用UDP呢?为什么?
我实际上并不理解UDP的全部要点.
对于我的编程观点,我希望有一种方法可以直观地使用它.与创建DatagramSocket
和创建一样DatagramPacket
,使用数据和目的地配置数据包并通过互联网发送.
至于我的用户我不希望他们必须配置任何特定的东西,比如打开他们想要使用的确切端口等.我只是想让他们使用程序(服务器和客户端),它应该工作.
我通过Apress - Pro Asp.Net MVC 5和Identity Framework的免费章节阅读,现在,我想创建一个包含一些数据和身份的小型示例应用程序.
后来我想对Windows Azure进行测试部署.
现在,我应该为此应用程序创建一个单独的数据库,包含所有数据(产品,无论如何,IdentityData(用户帐户,Oauth链接...))还是创建两个数据库会更好?
我知道,如果我创建两个,我将能够为其他MVC应用程序使用相同的Identity-Data,但是对于MVC是否有某种最佳实践?