LightDB23.4 GBK和UTF8转码失败的字符替换成空格

news2024/11/23 21:05:51

背景介绍

用户使用迁移工具从Oracle数据库迁移数据到LightDB的过程中发现,某些GBK编码转成UTF8编码后,在插入到LightDB中会报错。以GBK编码AAA1为例,LightDB的GBK和UTF8映射表中不支持AAA1这个GBK编码的转换。不支持的GBK编码都是处于GBK编码的自定义区间。

在这里插入图片描述
在上图中,UTF8编码EE8080对应于GBK编码AAA1,插入到LightDB时报错。
所以,在LightDB23.4中,将GBK和UTF8转码失败的字符替换成空格。只有在客户端和服务端编码不一致,且需要GBK和UTF8之间转码的时候,这个功能才生效。

功能示例

客户端编码GBK,服务端编码UTF8
  1. 建表,插入数据
lightdb@postgres=# \c lt_test
You are now connected to database "lt_test" as user "lightdb".
compatible type: postgresql
lightdb@lt_test=# 
lightdb@lt_test=# 
lightdb@lt_test=# create table t1(cont text);
CREATE TABLE
lightdb@lt_test=# 
lightdb@lt_test=# 
lightdb@lt_test=# show server_encoding ;
 server_encoding 
-----------------
 UTF8
(1 row)

lightdb@lt_test=# 
lightdb@lt_test=# \encoding gbk
lightdb@lt_test=# 
lightdb@lt_test=# \i gbk.test 
INSERT 0 1
lightdb@lt_test=# 
lightdb@lt_test=# select * from t1;
 cont  
-------
 我 们
(1 row)

lightdb@lt_test=# select oid,datname from pg_database where datname = 'lt_test';
  oid  | datname 
-------+---------
 25485 | lt_test
(1 row)

lightdb@lt_test=# 
lightdb@lt_test=# select oid,relfilenode from pg_class where relname = 't1';
  oid  | relfilenode 
-------+-------------
 25486 |       25486
(1 row)

lightdb@lt_test=# checkpoint ;
CHECKPOINT
lightdb@lt_test=# 
lightdb@lt_test=# select oid,relfilenode from pg_class where relname = 't1';
  oid  | relfilenode 
-------+-------------
 25486 |       25486
(1 row)

lightdb@lt_test=# 
  1. gbk.test文件中的内容
    在这里插入图片描述

  2. 查看实际表文件中的数据, e6 88 91 20 e4 bb ace6 88 91表示我,e4 bb ac表示们,中间的20就是转换后的空格

[lightdb@localhost 25485]$ hexdump -C 25486
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00002000
[lightdb@localhost 25485]$ hexdump -C 25486
00000000  00 00 00 00 f0 a9 0c 22  00 00 00 00 1c 00 e0 1f  |......."........|
00000010  00 20 04 20 00 00 00 00  e0 9f 40 00 00 00 00 00  |. . ......@.....|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001fe0  07 05 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001ff0  01 00 01 00 02 09 18 00  11 e6 88 91 20 e4 bb ac  |............ ...|
00002000
[lightdb@localhost 25485]$ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1178631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ifream标签中的子页面,操作父页面的元素

问题描述&#xff1a;子页面内容发生变化时&#xff0c;导航栏不会跟切换 解决办法&#xff1a; window.parent.document.getElementById demo html1 <html> <head><meta charset"UTF-8"><!-- import CSS --><link rel"stylesh…

使用VSCODE链接Anaconda

打代码还是在VSCODE里得劲 所以得想个办法在VSCODE里运行py文件 一开始在插件商店寻找插件 但是没有发现什么有效果的 幸运的是VSCODE支持自己选择Python的编译器 打开VSCODE 按住CtrlShiftP 输入Select Interpreter 如果电脑已经安装上了Python的环境 VSCODE会默认选择普通…

R语言实操记录——导出高清图片(矢量图)

R语言 R语言实操记录——导出高清图片&#xff08;矢量图&#xff09; 文章目录 R语言一、起因&#xff08;废话&#xff0c;可跳过&#xff09;二、如何在R中导出高清图片&#xff08;矢量图&#xff09;2.1、保存为EPS图片格式后转AI编辑2.2、保存为PDF格式&#xff08;推荐…

在直播系统中使用SRT协议传输视频

目录 1、简述 2、NDI、RTSP协议的优缺点 3、SRT协议简介 4、SRT协议链接地址URL格式 &#xff08;1&#xff09;listener&#xff1a; &#xff08;2&#xff09;caller&#xff1a; 5、手机发送SRT实时音视频 6、OBS中的设置 7、在vMix中的设置 8、写在最后 1、简述 …

财报解读:抢滩“睡眠经济”,麒盛科技如何制胜市场?

现代市场经济理论的鼻祖亚当斯密曾说&#xff0c;有需求就有市场&#xff0c;有市场才有发展。 调查研究显示&#xff0c;我国超3亿人存在睡眠障碍&#xff0c;其中超3/4的人晚11点以后入睡&#xff0c;近1/3的人熬到凌晨1点以后才能入睡。针对“睡个好觉”需求的“睡眠经济”…

GB28181学习(十五)——流传输方式

前言 基于GB/T28181-2022版本&#xff0c;实时流的传输方式包括3种&#xff1a; UDPTCP被动TCP主动 UDP 流程 注意&#xff1a; m字段指定传输方式为RTP/AVP&#xff1b; 抓包 SIP服务器发送INVITE请求&#xff1b; INVITE sip:xxx192.168.0.111:5060 SIP/2.0 Via: SIP…

Spring:常见的面试题和答案

1、什么是 Spring 框架&#xff1f;Spring 框架有哪些主要模块&#xff1f; Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。 Spring 帮助开发者解决了开发中基础性的问题&#xff0c;使得开发人员可以专注于应用程序的开发。 Spring 框架…

掌动智能:UI自动化测试工具的五大功能

在现代软件开发中&#xff0c;保证应用程序的质量和性能至关重要。UI自动化测试工具是一种关键的资源&#xff0c;它们能够有效地检查应用程序的用户界面&#xff0c;确保它们在各种情况下都能正常运行。本文将探讨UI自动化测试工具的功能有哪些! UI自动化测试工具的五大功能&a…

科技云报道:不卷自研大模型,金山办公如何创新生成式AI?

科技云报道原创。 过去大半年里&#xff0c;很多人对大模型的前景寄予厚望。主流观点认为&#xff0c;每个行业、每款产品都可以通过大模型“重做一遍”。 “重做一遍”听起来想象空间很大&#xff0c;但实际上多数大模型产品需要漫长的训练周期和海量资源投入&#xff0c;落…

特斯拉的利润率已陷入恶性循环

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;特斯拉(TSLA)第三季度疲弱的财务业绩表明&#xff0c;在当前环境下&#xff0c;投资特斯拉股票已不再是一项有保障的投资。 &#xff08;2&#xff09;正在进行的价格战可能会进…

软件设计模式的意义

软件设计模式的意义 所有开发人员都应该接触过软件设计模式这个概念&#xff0c;看过《设计模式-可复用的对象软件的基础》这本书&#xff0c;在面试中都被问过&#xff1a; 你用过哪些设计模式这种问题。但很大可能也就仅此而已了。 为什么好像只能从框架中找到设计模式的应用…

应用系统集成-Spring Integration

应用系统集成-Spring Integration 图1 EIP 消息系统模式全景图。 Spring Integration 是系统集成的一个实现框架&#xff0c;提供了对EIP核心概念&#xff1a;Endpoint、Message、Channel、Router、Translator的抽象及相关框架实现&#xff0c;使得基于Spring Integration进行…

python-全自动二维码识别

纯笔记&#xff0c;可以做到全屏识别二维码&#xff0c;自动识别&#xff0c;复制链接&#xff0c;生成简单的二维码&#xff0c;将识别到的内容转为txt import pyautogui from PIL import Image from pyzbar.pyzbar import decode import tkinter as tk from tkinter import …

【JAVA学习笔记】64 - 坦克大战1.4,限制坦克发射子弹,敌方击中我方坦克爆炸

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter18/src/com/yinhai/tankgame1_3 增加功能 1.我方坦克在发射的子弹消亡后&#xff0c;才能发射新的子弹. >扩展(发多颗子弹怎么办)&#xff08;其实已经解决了&#xff0c;在62章我们已经…

【科普】电脑屏幕刷新率:了解和选择需要的刷新率

在日常使用电脑的过程中&#xff0c;我们经常会听到刷新率这个词&#xff0c;但是你了解它的意义和作用吗&#xff1f;接下来&#xff0c;让我们一起来深入了解一下吧。 01 什么是刷新率 首先&#xff0c;我们要解释一下什么是刷新率。刷新率就是屏幕在一秒内能刷新的次数&…

微信小程序之自定义组件开发

1、前言 从小程序基础库版本 1.6.3 开始&#xff0c;小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。开发者可以将页面内的功能模块抽象成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的页面拆分成多个低耦…

践行“人人可用”:更轻量、更好用、更优雅、更全面,DataEase开源数据可视化分析平台发布v2.0版本

2023年11月6日&#xff0c;DataEase开源数据可视化分析平台正式发布v2.0版本。DataEase开源项目创立于2021年1月&#xff0c;于2021年6月发布v1.0版本。相比v1.x版本&#xff0c;DataEase v2.0版本采用了更加轻量级的架构设计&#xff0c;功能模块在保留原有“仪表板”模块的基…

领域认知智能走向落地,B端企业还缺些啥?

大模型如何为我所用&#xff1f; 这是当下B端众多企业都在深入思考的一个问题。今年以来&#xff0c;大模型在办公、对话、搜索等领域所展现出的强大能力&#xff0c;让越来越多B端企业意识到大模型对于业务的巨大价值。 因此&#xff0c;领域认知智能迅速成为B端企业关注的焦…

rhcsa-压缩和解压缩

.zip: zip 程序压缩打包的档案;(很常见&#xff0c;但是因为不包含文档名编码信息&#xff0c;跨平台可能会乱码).rar: rar 程序压缩打包的档案:(在windows上很常见&#xff0c;但是是商业软件。gz: gzip 程序压缩的档案;(linux目前使用最广泛的压缩格式).bz2: bzip2 程序压…

Linux之Nignx及负载均衡动静分离

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《LInux实战开发》。&#x1f3af;&#x1f3af; …