暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 确定blob参数的字符集/编码

askTom 2017-08-14
583

问题描述

来源来源:
https://oracle-base.com/articles/misc/oracle-rest-data-services-ords-restful-web-services-handling-complex-json-payloads

我如何猜测提交数据的编码?
考虑一个web服务调用,就像这篇关于oracle-base.com的非常有用的文章系列中描述的那样
可以以不同的编码创建POST数据: utf8,iso8859-1,...
那些apex_json.get_varchar2调用在数据库的编码中返回一个varchar2
l_emp_tab(l_emp_tab.last)。ename := APEX_JSON.get_varchar2(p_path => '部门 [% d]。部门。员工 [% d]。员工名称',p0 => i,p1 => j);
现在我想知道我是否必须转换这些字符串才能将它们存储到数据库中。
它们可能包含在不同编码中不同表示的特殊字符 (变音符号)。

这是一个复杂的示例 “我如何猜测二进制数据的编码”。像记事本或unix文件可以做到这一点。

亲切的问候和提前感谢

汉斯

专家解答

这里有几件事在玩

1) 对于字符数据,字符集转换由数据库自动处理。如果您有数据 (在数据库中) characterset #1,并且在characterset #2中使用oracle客户端进行检索,那么我们将进行转换 * 如果可能 *。(显然,如果 #1中的数据无法映射到 #2,则会收到垃圾)。但是对我来说,我现在构建/做的任何事情,我都努力在UTF8中做到这一点,以满足最广泛的要求。但很明显,有时你是一时兴起的数据,正在传递给你从外部来源-但在这些情况下,它是合理的坚持,用于编码数据的字符集提供给你作为请求的元数据的一部分。

2) 对于二进制数据,只是... 二进制。“理解” 这些数据及其代表的责任落在你身上。如果可能的话,这可能涉及捕获 (例如) mime类型的数据,当它第一次加载时。或者利用数据签名之类的东西来尝试以与 “文件” 相同的方式对数据进行分类

https://en.wikipedia.org/wiki/List_of_file_signatures


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论