我尝试从我的MySQL数据库中的服务中保存用户的名字。 这些名称可以包含像🙈😂😱🍰这样的emojis(仅举例) search一下后,我发现这个链接到本教程的 stackoverflow 。 我按照步骤,它看起来像一切正常configuration。 我有一个数据库(charset和collation设置为utf8mb4(_unicode_ci)),一个名为TestTable的表,还configuration了这种方式,以及一个“文本”列,configuration这种方式(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 我能够正确保存的唯一表情符号是太阳☀️ 虽然我没有尝试所有这些都是诚实的。 有什么我在configuration中丢失? 请注意:所有的保存testing都不涉及客户端。 我使用phpmyadmin手动更改值并保存数据。 所以客户端的正确configuration是在服务器正确保存emojis 之后我会照顾的。 另一个旁注 :目前,当保存emojis我得到上面的错误,或不会出现错误, Username 🍰的数据将被存储为Username ???? 。 错误或没有错误取决于我保存的方式。 当通过SQL语句创build/保存时,我用问号保存,当编辑内联时,我用问号保存,当使用编辑button进行编辑时,我得到错误。 谢谢 编辑1:好,所以我想我发现了问题,但不是解决scheme。 它看起来像数据库特定variables没有正确更改。 当我在我的服务器上以root身份login并读出variables(全局)时: 使用的查询: SHOW VARIABLES […]
字符👩👩👧👦(有两个女人,一个女孩和一个男孩的家庭)编码如下: U+1F469 WOMAN , U+200D ZWJ , U+1F469 WOMAN , U+200D ZWJ , U+1F467 GIRL , U+200D ZWJ , U+1F466 BOY 所以这是非常有趣的编码; unit testing的完美目标。 不过,Swift似乎并不知道如何对待它。 这是我的意思: "👩👩👧👦".contains("👩👩👧👦") // true "👩👩👧👦".contains("👩") // false "👩👩👧👦".contains("\u{200D}") // false "👩👩👧👦".contains("👧") // false "👩👩👧👦".contains("👦") // true 所以,斯威夫特说,它包含自己(好)和一个男孩(好!)。 但是,它说它不包含一个女人,女孩,或零宽度木匠。 这里发生了什么事? 为什么Swift知道它包含一个男孩,但不是一个女人或女孩? 我能理解它是否把它当作一个单一的字符,只承认它包含它自己,但是它只有一个子组件,而没有其他的组件让我感到困惑。 如果我使用"👩".characters.first!等东西,这不会改变"👩".characters.first! 。 更令人困惑的是这样的: let manual = "\u{1F469}\u{200D}\u{1F469}\u{200D}\u{1F467}\u{200D}\u{1F466}" Array(manual.characters) // […]