Erlang emysql iPhone Emoji 编码问题

2023-12-06

我正在尝试使用 Erlang 将 iPhone 客户端应用程序中的文本(带有表情符号)存储在 MySQL 数据库上。 (进入 varchar 列)

我曾经使用 C++ 和 mysqlpp 完成的套接字连接服务器来完成此操作,效果很好。 (这是完全相同的数据库,所以我可以假设问题不是来自数据库)

然而,出于可扩展性的原因,我决定将所有内容都传递到 Erlang 上,因为我无法正确存储和检索表情符号。

我正在使用 emysql 与我的数据库进行通信。

当我存储时,我将此列表发送到数据库:

[240,159,152,130]

当我检索时,我得到的是:

<<195,176,194,159,194,152,194,130>>

显然有一些相似之处,我们可以在两条线上看到159、152和130,但没有240。我不知道195、176和194来自哪里。

我想过在创建连接池时更改mysql编码。

 emysql:add_pool(my_db, 3, "login", "password", "db.mydomain.com", 3306, "MyTable", utf8)

但我似乎可以找到适合 utf32 编码的原子。 (有趣的是,我没有在 C++ 和 mysqlpp 上设置任何编码,它开箱即用)。

我做了一些测试...

storing from C++, retrieving from C++ (Works fine)
storing from Erlang, retrieving from Erlang (Does not work)
storing from Erlang, retrieving from C++ (Does not work)
storing from C++, retrieving from Erlang (Does not work)

另一信息是,我在 Erlang 上使用准备好的语句,而我不在 C++ 上

任何帮助,将不胜感激。

根据要求,这里是存储数据的查询:

UPDATE Table SET c=? WHERE id=?

真的很简单...


这都是关于utf-8编码的。在 Erlang 中,字符列表(根据您的情况)[240,159,152,130], 通常不进行编码,而是 unicode 代码点。当您检索数据时,您会得到一个包含字符的 utf-8 编码字节的二进制文件。我不知道这种编码到底发生在哪里。从 erlang shell 中:

10> Bin = <<195,176,194,159,194,152,194,130>>.   
<<195,176,194,159,194,152,194,130>>
11> <<M/utf8,N/utf8,O/utf8,P/utf8,R/binary>> = Bin.
<<195,176,194,159,194,152,194,130>>
12> [M,N,O,P].
[240,159,152,130]

在erlang中处理unicode非常简单,列表中的字符通常是unicode代码点并且很少被编码,而将它们存储在二进制文件中意味着你必须以某种方式对它们进行编码,因为二进制文件只是字节数组。默认编码是utf-8。在模块中unicode有一些函数可以在 unicode 列表和二进制文件之间进行转换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Erlang emysql iPhone Emoji 编码问题 的相关文章

  • NSXMLParser 解析使用 Windows-1256 编码的 xml 文件

    我想解析 Windows 1256 编码的 rss 文件 但解析器没有读取它 我用 UTF8 编码做了很多解析 但只有这个不起作用 为什么 带有 Windows 1256 的 rss 文件 http youm7 com Rss asp 解决
  • Codeigniter,为MySQL创建表和用户

    我想以编程方式使用 CI 创建数据库和用户 到目前为止 我有这 2 个简单的 MySQL 语句 CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8 general c
  • 使用 JavaScript 和 HTML 打印表情符号

    为什么这有效 p x1f604 p 而这并没有 document getElementById emoji innerHTML String fromCharCode parseInt 1f604 16 JS 术语中的 char 实际上是一
  • 计算 MySQL 中的行数以及实际行内容

    MySQL 中有没有办法执行单个 SQL 语句来返回所选行以及结果行数 我可以做这个 SELECT COUNT FROM BigTable WHERE firstname LIKE a 这给了我一个带有计数 37 781 的结果行 我可以像
  • 在表中添加新列,其值取决于同一表中另一列的值

    我是 Mysql 的新手 我想在表中添加一列 其值取决于同一个表中的另一个列值 例如我有company table如下 fldId companyName date 1 adeco 2012 01 12 2 mic 2001 03 09 3
  • MySQL 列数据以逗号分隔列表形式返回

    我目前有一个 MySQL 表 例如 id friend 1 2 1 5 1 10 3 6 15 19 21 4 我试图获取某个特定用户的所有好友 ID 并将它们排列到一个以逗号分隔的列表中 例如 抓取了 user1 的好友 它将返回为 fr
  • MySQL 查询性能有帮助,许多相同的表被连接

    我正在编写一个创建 SQL 查询的 PHP 脚本 该脚本和数据库用于 Joomla CMS 特别是它查询 SOBIPro 组件的表 以使用在此组件中输入的数据 然而 由于 SOBI Pro 表的处理方式 字段的每个实例都是表中自己的行 这意
  • 导出 CSV 文件时出现编码问题

    我正在使用 Asp net mvc 生成 CSV 文件 但在处理葡萄牙语中的特殊字符时遇到问题 我使用以下代码返回文件 public FileContentResult RelMatriculas RelRematriculaVM mode
  • mysql 分区错误主键必须包含表分区函数中的所有列

    在 MySQL 8 上我有这个表 CREATE TABLE float values id bigint UNSIGNED NOT NULL attribute id bigint UNSIGNED NOT NULL value doubl
  • sql自连接表删除重复行

    我有下表 USERID LANGUAGEID 1 2 1 7 1 8 2 10 2 3 现在我想为每个用户创建所有可能的语言对 这意味着我希望结果集是 对于用户 1 2 7 7 8 2 8 对于用户 2 10 3 为此 我做了以下查询 SE
  • 如何在MySql中将bool转换为int

    我是 MySql 的新手 所以我不知道很多东西 比如数据类型的转换 如何在 MySql 中将 bool 转换为 int 还有如何在 MySql 中将十进制转换为 Int 将布尔值类型转换为整数 SELECT CAST 1 1 AS SIGN
  • 如何轻松地将多个sql文件导入MySQL数据库?

    我有一些sql文件 我想要import将它们全部一次性存入 MySQL 数据库 I go to PHPMyAdmin 访问数据库 点击import 选择一个文件并导入 当我有多个文件时 需要很长时间 我想知道是否有更好的方法来导入多个文件
  • 尝试访问从资产复制到数据\数据\的数据库中的DatabaseHelper时出现空指针异常

    我有一个数据库助手类 代码如下 这个助手的类任务是将数据库从应用程序附带的资产文件夹复制到我的应用程序的 data data 中 以便我可以使用它 一旦我将数据库放入 data data 我能够 我想添加它并执行 CRUD 操作 并且该数据
  • PHP MySQL从2个表中获取数据

    我正在尝试合并数据库中的 2 个表 文件表 id file name file description file url access files 表 id student id file id 这是我的sql代码 当前从文件表中获取所有文
  • 将包含 sum 和 group_concat 的 mysql 查询转换为 mongodb 查询

    我想将下面的 mysql 查询转换为 mongodb 查询 SELECT substring o schedule datetime 1 4 Year SUM IF o order status in SUCCESS SUCCESS 1 0
  • MySQL LOAD_FILE 返回 NULL

    我正在做这个SELECT LOAD FILE home user domains example com public html robots txt AS tmp FROM tmpTable但它返回 NULL 如何检查这是因为我没有 FI
  • 不使用sequelize模型存储updatedAt

    当我将模型存储在 MySQL 数据库中时 它们是不可变的 因此 我可以在表中看到对createdAt列的需要 但我不需要冗余的updatedAt列 我可以将sequelize 配置为不存储updatedAt time 然后可以从表中删除该列
  • 为什么 MYSQL IN 关键字不考虑 NULL 值

    我正在使用以下查询 select count from Table1 where CurrentDateTime gt 2012 05 28 15 34 02 403504 and Error not in Timeout Connecti
  • 使用 PHP 安全连接 MySQL 的最佳方法[重复]

    这个问题在这里已经有答案了 我想了解一下你们认为使用 PHP 连接到 MySQL 数据库的最安全方法 目前我正在做的方式是一个实用程序 PHP 文件 我将其包含在所有其他 PHP 文件的顶部 实用程序 PHP 文件是这样的 有什么建议么 建
  • 为什么这个 Hibernate MySQL 连接是只读的?

    我有一个在 MySQL 数据库上使用 Spring 和 Hibernate 的应用程序 由于某种原因 截至过去几天 每当我尝试将任何对象保留到数据库中时 都会收到以下错误 java sql SQLException 连接是只读的 导致数据修

随机推荐

  • Pig 相当于 SQL GREATEST / LEAST?

    我试图找到相当于猪SQL 函数GREATEST and LEAST 这些函数是聚合 SQL 函数的标量等效项MAX and MIN 分别 本质上 我希望能够这样说 x LOAD file a b c csv USING PigStorage
  • DiggBar 是如何工作的?

    DiggBar 是如何工作的 我正在尝试制作 ASP NET MVC DiggBar 克隆 仅用于学习目的 有人对如何指定下框架内容的 url 有建议吗 您将如何在 MVC 中构建它 另外 我知道它是一个 iFrame 但他们如何定位它 以
  • 在Python模块中强制执行方法顺序[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 处理必须按一定顺序调用方法的模块的最 Pythonic 方法是什么 例如 我有一个 XML 配置 在执行其他操作之前必须读取该配置 因为该配置会影响行为 The parse config
  • Blazor OnAfterRenderAsync 混淆

    我理解这个想法OnAfterRenderAsyc 但我不明白如何实现我想要的 我有OnInitializedAsync 基本上从文件中获取摘要信息 之后 我想调用另外 2 个方法 并根据这 2 个方法返回的信息 我想将一些 HTML 添加到
  • 使用 Linq 获取 CDATA XML 部分

    我到处搜索寻找访问 CDATA 部分文本区域的方法 并发现使用 linq 的非常温暖的解决方案 我需要提取 CDATA 部分中嵌入的 XML 以便提取不同的信息 我有以下 XML
  • 为什么 JSTL 数字格式值不支持运行时表达式?

    我有这个代码
  • 使用 Javascript 检测 Chrome 操作系统

    我想用 Javascript 检测 Chrome 操作系统 并且我正在使用navigator userAgent为了这 现在 我正在运行 Chrome 操作系统 我的导航器 userAgent 是 Mozilla 5 0 X11 CrOS
  • 如何找到 ComboBoxItem 的 ParentComboBox?

    如何获取 ComboBoxItem 的 ParentComboBox 如果按下 Insert 键 我想关闭打开的组合框 var focusedElement Keyboard FocusedElement if focusedElement
  • 如何使 Laravel 的 Validator $rules 成为可选?

    假设我有User模型有两种方法 User php class User extends Eloquent Validation rules private static rules array user gt unique users re
  • Objective-C 中有一些文字字典或数组语法吗?

    总是可以使用 vararg 方法调用创建 NSArray 和 NSDictionaries NSNumber 例如 NSArray arrayWithObjects a b c nil 这些可以在 LLVM 和 Clang 的新改进中使用内
  • 实现react-bootstrap-typeahead的组合框行为

    我正在尝试使用react bootstrap typeahead控制 但我很惊讶试图让它做我想做的事 实际上 我的页面上有其中两个 其中一个正在执行真正的异步查找 另一个我几乎希望表现得像组合框 我想要做的是选择一个项目 然后单击下拉菜单改
  • openCV:为 IplImage 添加透明度

    我有一个 3 通道 IplImage 我想创建一个 4 通道图像并将其 Alpha 通道设置为小于 1 0 的值以使其半透明 首先 我将 alpha 通道 第 4 个通道 设置为 0 5 cvSet Image c4 cvScalar 0
  • 从 NumPy 矩阵中的每一行中取出满足条件的前 N ​​个值

    我有一个numpy vector and a numpy array 我需要从矩阵中的每一行中获取小于 或等于 向量中相应行的前 N 个 比方说 3 个 值 所以如果这是我的向量 7 9 22 38 6 15 这是我的矩阵 20 9 7 5
  • 删除Golang中包含某些子字符串的行

    如何删除以某些子字符串开头的行 byte in Ruby通常我会做这样的事情 lines lines split n reject r r include substring join n 如何执行此操作Go 您可以使用正则表达式来模拟 r
  • Python 中模块的导入文件夹

    python 中是否可以从文件夹 包中获取模块列表并导入它们 我希望能够从类内的函数中执行此操作 以便整个类都可以访问它们 可能是从 init 方法 任何帮助将不胜感激 See the 模块文档 唯一的解决方案是包作者提供明确的 包的索引
  • 记住用户从一页到下一页的选择

    在我的网站上 用户有多种选项 例如语言 日期和区域 当用户单击其中任何一个都很好时 网站会适应特定的选择 但是当他们转到另一个页面时 他们会失去所有选择 如果我找到一种方法在整个访问过程中保留它们 那就太好了24小时 例如 鲍勃进入我的网站
  • Android Studio 的数据绑定模板?

    我决定在我的 Android 项目中使用 DataBinding 库 是否有任何插件 代码模板可用于安装到 Android Studio 中 以使用 Android Studio 的向导自动生成的与 DataBinding 兼容的代码添加新
  • PHP 简单的 html dom 解析器 - 查找单词

    我使用 PHP 简单 html dom 解析器库 我只想将所有 manteau 单词替换为 此处查找单词 这是我下面的代码 它不适用于不在标签中的单词 它仅适用于强标签中的 manteau 一词 如何解析所有节点文本 Note str re
  • 如何将证书添加到 WebClient (C#)?

    我知道向 HttpWebRequest 添加证书非常简单 但是 我还没有找到使用 WebClient 进行等效操作的方法 基本上 我想使用 WebClient 发送带有特定证书的 POST 您将如何使用 WebClient 完成这个确切的代
  • Erlang emysql iPhone Emoji 编码问题

    我正在尝试使用 Erlang 将 iPhone 客户端应用程序中的文本 带有表情符号 存储在 MySQL 数据库上 进入 varchar 列 我曾经使用 C 和 mysqlpp 完成的套接字连接服务器来完成此操作 效果很好 这是完全相同的数