精华内容
下载资源
问答
  • 2021-09-11 12:32:23

    Oracle 数据库分为数据库字符集客户端字符集两种!

    很多刚接触的朋友经常会搞混这两个字符集,数据库字符集是在创建数据库时进行指定的,不建议更改!而客户端字符集是可以随时更改的!

    查询数据库字符集:

    select * from nls_database_parameters t where t.parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
    

    查询客户端字符集:

    SELECT USERENV(
    更多相关内容
  • Windows字符编码大全

    千次阅读 2021-09-27 19:12:06
    使用Windows系统的电脑办公,经常会遇到乱码问题,原因一般都是字符集不一致导致; 查看字符集 命令行中执行 chcp 设置字符集 chcp 代码页 国内常用字符集编码一般是936(GBK)和65001(UTF-8) 字符集编码...

    在使用Windows系统的电脑办公,经常会遇到乱码问题,原因一般都是字符集不一致导致;

    查看字符集

    命令行中执行

    chcp

    设置字符集

    chcp + 代码页

    国内常用字符集编码一般是936(GBK)和65001(UTF-8)

    字符集编码(代码页)

    名称

    中文名称

    37

    IBM037

    IBM EBCDIC(美国 - 加拿大)

    437

    IBM437

    OEM 美国

    500

    IBM500

    IBM EBCDIC(国际)

    708

    ASMO-708

    阿拉伯字符 (ASMO 708)

    720

    DOS-720

    阿拉伯字符 (DOS)

    737

    ibm737

    希腊字符 (DOS)

    775

    ibm775

    波罗的海字符 (DOS)

    850

    ibm850

    西欧字符 (DOS)

    852

    ibm852

    中欧字符 (DOS)

    855

    IBM855

    OEM 西里尔语

    857

    ibm857

    土耳其字符 (DOS)

    858

    IBM00858

    OEM 多语言拉丁语 I

    860

    IBM860

    葡萄牙语 (DOS)

    861

    ibm861

    冰岛语 (DOS)

    862

    DOS-862

    希伯来字符 (DOS)

    863

    IBM863

    加拿大法语 (DOS)

    864

    IBM864

    阿拉伯字符 (864)

    865

    IBM865

    北欧字符 (DOS)

    866

    cp866

    西里尔字符 (DOS)

    869

    ibm869

    现代希腊字符 (DOS)

    870

    IBM870

    IBM EBCDIC(多语言拉丁语 2)

    874

    windows-874

    泰语 (Windows)

    875

    cp875

    IBM EBCDIC(现代希腊语)

    932

    shift_jis

    日语 (Shift-JIS)

    936

    gb2312

    简体中文 (GB2312)

    949

    ks_c_5601-1987

    朝鲜语

    950

    big5

    繁体中文 (Big5)

    1026

    IBM1026

    IBM EBCDIC(土耳其拉丁语 5)

    1047

    IBM01047

    IBM 拉丁语 1

    1140

    IBM01140

    IBM EBCDIC(美国 - 加拿大 - 欧洲)

    1141

    IBM01141

    IBM EBCDIC(德国 - 欧洲)

    1142

    IBM01142

    IBM EBCDIC(丹麦 - 挪威 - 欧洲)

    1143

    IBM01143

    IBM EBCDIC(芬兰 - 瑞典 - 欧洲)

    1144

    IBM01144

    IBM EBCDIC(意大利 - 欧洲)

    1145

    IBM01145

    IBM EBCDIC(西班牙 - 欧洲)

    1146

    IBM01146

    IBM EBCDIC(英国 - 欧洲)

    1147

    IBM01147

    IBM EBCDIC(法国 - 欧洲)

    1148

    IBM01148

    IBM EBCDIC(国际 - 欧洲)

    1149

    IBM01149

    IBM EBCDIC(冰岛语 - 欧洲)

    1200

    utf-16

    Unicode

    1201

    UnicodeFFFE

    Unicode (Big-Endian)

    1250

    windows-1250

    中欧字符 (Windows)

    1251

    windows-1251

    西里尔字符 (Windows)

    1252

    Windows-1252

    西欧字符 (Windows)

    1253

    windows-1253

    希腊字符 (Windows)

    1254

    windows-1254

    土耳其字符 (Windows)

    1255

    windows-1255

    希伯来字符 (Windows)

    1256

    windows-1256

    阿拉伯字符 (Windows)

    1257

    windows-1257

    波罗的海字符 (Windows)

    1258

    windows-1258

    越南字符 (Windows)

    1361

    Johab

    朝鲜语 (Johab)

    10000

    macintosh

    西欧字符 (Mac)

    10001

    x-mac-japanese

    日语 (Mac)

    10002

    x-mac-chinesetrad

    繁体中文 (Mac)

    10003

    x-mac-korean

    朝鲜语 (Mac)

    10004

    x-mac-arabic

    阿拉伯字符 (Mac)

    10005

    x-mac-hebrew

    希伯来字符 (Mac)

    10006

    x-mac-greek

    希腊字符 (Mac)

    10007

    x-mac-cyrillic

    西里尔字符 (Mac)

    10008

    x-mac-chinesesimp

    简体中文 (Mac)

    10010

    x-mac-romanian

    罗马尼亚语 (Mac)

    10017

    x-mac-ukrainian

    乌克兰语 (Mac)

    10021

    x-mac-thai

    泰语 (Mac)

    10029

    x-mac-ce

    中欧字符 (Mac)

    10079

    x-mac-icelandic

    冰岛语 (Mac)

    10081

    x-mac-turkish

    土耳其字符 (Mac)

    10082

    x-mac-croatian

    克罗地亚语 (Mac)

    20000

    x-Chinese-CNS

    繁体中文 (CNS)

    20001

    x-cp20001

    TCA 台湾

    20002

    x-Chinese-Eten

    繁体中文 (Eten)

    20003

    x-cp20003

    IBM5550 台湾

    20004

    x-cp20004

    TeleText 台湾

    20005

    x-cp20005

    Wang 台湾

    20105

    x-IA5

    西欧字符 (IA5)

    20106

    x-IA5-German

    德语 (IA5)

    20107

    x-IA5-Swedish

    瑞典语 (IA5)

    20108

    x-IA5-Norwegian

    挪威语 (IA5)

    20127

    us-ascii

    US-ASCII

    20261

    x-cp20261

    T.61

    20269

    x-cp20269

    ISO-6937

    20273

    IBM273

    IBM EBCDIC(德国)

    20277

    IBM277

    IBM EBCDIC(丹麦 - 挪威)

    20278

    IBM278

    IBM EBCDIC(芬兰 - 瑞典)

    20280

    IBM280

    IBM EBCDIC(意大利)

    20284

    IBM284

    IBM EBCDIC(西班牙)

    20285

    IBM285

    IBM EBCDIC(英国)

    20290

    IBM290

    IBM EBCDIC(日语片假名)

    20297

    IBM297

    IBM EBCDIC(法国)

    20420

    IBM420

    IBM EBCDIC(阿拉伯语)

    20423

    IBM423

    IBM EBCDIC(希腊语)

    20424

    IBM424

    IBM EBCDIC(希伯来语)

    20833

    x-EBCDIC-KoreanExtended

    IBM EBCDIC(朝鲜语扩展)

    20838

    IBM-Thai

    IBM EBCDIC(泰语)

    20866

    koi8-r

    西里尔字符 (KOI8-R)

    20871

    IBM871

    IBM EBCDIC(冰岛语)

    20880

    IBM880

    IBM EBCDIC(西里尔俄语)

    20905

    IBM905

    IBM EBCDIC(土耳其语)

    20924

    IBM00924

    IBM 拉丁语 1

    20932

    EUC-JP

    日语(JIS 0208-1990 和 0212-1990)

    20936

    x-cp20936

    简体中文 (GB2312-80)

    20949

    x-cp20949

    朝鲜语 Wansung

    21025

    cp1025

    IBM EBCDIC(西里尔塞尔维亚 - 保加利亚语)

    21866

    koi8-u

    西里尔字符 (KOI8-U)

    28591

    iso-8859-1

    西欧字符 (ISO)

    28592

    iso-8859-2

    中欧字符 (ISO)

    28593

    iso-8859-3

    拉丁语 3 (ISO)

    28594

    iso-8859-4

    波罗的海字符 (ISO)

    28595

    iso-8859-5

    西里尔字符 (ISO)

    28596

    iso-8859-6

    阿拉伯字符 (ISO)

    28597

    iso-8859-7

    希腊字符 (ISO)

    28598

    iso-8859-8

    希伯来字符 (ISO-Visual)

    28599

    iso-8859-9

    土耳其字符 (ISO)

    28603

    iso-8859-13

    爱沙尼亚语 (ISO)

    28605

    iso-8859-15

    拉丁语 9 (ISO)

    29001

    x-Europa

    欧罗巴

    38598

    iso-8859-8-i

    希伯来字符 (ISO-Logical)

    50220

    iso-2022-jp

    日语 (JIS)

    50221

    csISO2022JP

    日语(JIS- 允许 1 字节假名)

    50222

    iso-2022-jp

    日语(JIS- 允许 1 字节假名 - SO/SI)

    50225

    iso-2022-kr

    朝鲜语 (ISO)

    50227

    x-cp50227

    简体中文 (ISO-2022)

    51932

    euc-jp

    日语 (EUC)

    51936

    EUC-CN

    简体中文 (EUC)

    51949

    euc-kr

    朝鲜语 (EUC)

    52936

    hz-gb-2312

    简体中文 (HZ)

    54936

    GB18030

    简体中文 (GB18030)

    57002

    x-iscii-de

    ISCII 梵文

    57003

    x-iscii-be

    ISCII 孟加拉语

    57004

    x-iscii-ta

    ISCII 泰米尔语

    57005

    x-iscii-te

    ISCII 泰卢固语

    57006

    x-iscii-as

    ISCII 阿萨姆语

    57007

    x-iscii-or

    ISCII 奥里雅语

    57008

    x-iscii-ka

    ISCII 卡纳达语

    57009

    x-iscii-ma

    ISCII 马拉雅拉姆语

    57010

    x-iscii-gu

    ISCII 古吉拉特语

    57011

    x-iscii-pa

    ISCII 旁遮普语

    65000

    utf-7

    Unicode (UTF-7)

    65001

    utf-8

    Unicode (UTF-8)

    65005

    utf-32

    Unicode (UTF-32)

    65006

    utf-32BE

     cmd chcp 字符集编码

    展开全文
  • windows系统查看字符集命令

    千次阅读 2021-01-14 14:10:11
    windows系统查看字符集命令:chcp 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。...

    windows系统查看字符集命令:chcp

    欢迎使用Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G
    查找:Ctrl/Command + F
    替换:Ctrl/Command + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目Value
    电脑$1600
    手机$12
    导管$1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列第二列第三列
    第一列文本居中第二列文本居右第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPEASCIIHTML
    Single backticks'Isn't this fun?'‘Isn’t this fun?’
    Quotes"Isn't this fun?"“Isn’t this fun?”
    Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to- HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

    Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

    张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • Windows下的字符编码字符集及应用

    千次阅读 2020-08-18 17:41:17
    1. 基础 1.1. 字符编码 ...字符集(Character Set),世界上有很多种文字,每种文字都有一套自己的字库。很多国家为了让计算机正常显示自己的文字,发明了套字符编码方式。这样每个字都有一个数字编码相对应。这

    1. 基础

    1.1. 字符编码

    字符编码(Character encoding),计算机的CPU计算、硬盘存储、显示器都是以数字信号存在的。那么所有显示的字符(无论是英文字符、还是中文字符)都是以数字来表示的。字符编码即统一套标准来在不同计算机之间存储传递信息。这一套以数字表示字符的过程,就是字符编码过程。

    1.2. 字符集

    字符集(Character Set),世界上有很多种文字,每种文字都有一套自己的字库。很多国家为了让计算机正常显示自己的文字,发明了套字符编码方式。这样每个字都有一个数字编码相对应。这种以数字编码应对所有字的集合,就是字符集。
    一般情况下,不同文字体系都有一套字符集。如英文是ASCII字符集,简体中文是GBK字符集,繁体字是Big5字符集。字符集太多,不利于信息在全球传递。所以需要一种可以包含所有文字体系的字符集,这种字符集就是Unicode字符集。

    1.3. ASCII字符集

    ASCII字符集,我们知道计算机最早是美国发明的,所以字符编码这一块儿最早也是美国弄的。ASCII(American Standard Code for Information Interchange,美国信息交换标准代码):使用 7 个 Bit 表示,共 128 个字符,刚好占用了一个字节中的后 7 位,共包括33个控制字符和95个可显示字符。这128个数字编码对应的字符集即是ASCII字符集。

    1.4. 简体汉字字符集

    • GB2312(Guo Biao 2312)
      用双字节表示汉字,但是为了完全兼容 ASCII。汉字区“高字节”范围为 0xB0-0xF7,汉字区“低字节”范围 0xA1-0xFE,占用码位 72*94=6768 个。
    • GBK(Guo Biao Kuozhan)
      后来发现 GB2312 的字符依然不够用,尤其是像“镕”(朱镕基)字打不出来。然后决定汉字区的低字节完全不兼容 ASCII,只要当前字符属于汉字码,那么其后的字符也属于汉字码。这样在兼容 GB2312 的基础上,再添加了近两万字和字符(兼容繁体、日本汉字、韩国汉字等)。
    • GB18030
      是 GBK 的扩展版,并且完全兼容 GBK。GB18030和 utf-8 类似,是动态的,既有单字节字体,也有双字节字节(BGK),也有三字节,四字节字符,这样可以节省信息占用量。Windows 默认支持的是 GBK,若要支持 GB18030,需要下载安装单独的支持包。

    1.5. Big5

    1984 年台湾五家公司联合创立,称大五码,英文 Big5。Big5 也是双字节编码方式,收录了一万多字符,但是没有包含中文简体。Big5 目前也被香港、澳门等地区国家使用。Big5 保存的文本,在简体操作系统下显示乱码。为什么呢?这是因为Big5字符集中的繁体字对应的编码与GBK字符集中的繁体字对应的编码不一样。所以Big5编码的繁体内容文本是无法直接用GKB编码方式解码并显示的。
    但是有些编辑器会自动识别出是Big5编码,然后将其按 GBK 繁体字解码,即可以在简体中文操作系统下正常显示。如 Notepad++、Visual Studio Code均可以在简体操作系统下显示Big5编码的文本内容。

    1.6. Unicode

    Unicode字符集,随着不同国家间越来越紧密的联系,尤其是Web的发展。任何一个网页都可以在全球有正常网络的地方打开浏览。如果新浪网的内容是以GBK编码的,那么在国际的华人可能就无法正常浏览网页内存了。基于信息的全球互通,一个Unicode的国际组织成立,创建了一种Unicode字符集,这种字符集可以容纳所有国家的所有字符编码。
    早期的Unicode字符集采用的编码方式是以4个BYTE表示一个字符。那么一个汉字只需要1个Unicode编码表示就可以,但是英文单词却需要很多个Unicode字符表示,这种方式大大增加了英文内存的存储、传输开销。所以Unicode早期一直无法很好地在全球推行。英文内存提供商依然使用传统的ASCII字符编码。采用4BYTE表示一个字符的编码方式被称为UTF-32。

    1.7. UTF-16

    比较ASCII以及UTF-32各自的优点,一个新的Unicode编码方式采取了一个折中的方案,即UTF-16。世界主流字符用2BYTE即可以表示,但是也必须照顾到那些不常用的字符。那么怎么办呢?
    UTF-16将常用的字符安排在0-0xFFFF这个范围,而不常用的安排在0xFFFF之后。那么如何处分0x0001和0x10000这两个字符呢?Unicode委会员商议,将0xD800-0xDFFF这个范围空出来,用来表示是2BYTE的字符,还是4BYTE的字符。Windows下,UTF-16也被称为宽字符。

    1.8. UTF-8

    UTF-16相比UTF-32,大幅降低了信息传递、存储的消耗。但是英文字符的国家依然觉得增加近一倍的消耗是不可以接受的。Unicode字符集依然难以在世界范围内推行。Unicode急需要一种能够让各方都满意地编码方式才行。在这种情况,UTF-8出现了。UTF-8编码方式的设计是完全兼容ASCII编码的,这样就不会增加英文字符的开销,并且可以完整表达所有的Unicode字符集。
    我们知道标准的ASCII字符集只表示128个字符,最高位是没有使用的。在UTF-8编码中,如果1BYTE中最高Bit为0,则当前BYTE和ASCII编码相同。如果最高Bit为1,则表示当前BYTE是Unicode编码,接下来有几个1,就表示这个字符的Unicode编码占有几个BYTE。如0x1111 0XXX XXXX XXXX,就表示这个字符占用4个BYTE。
    UTF-8是变字节长度的,用 1-6 个字节表示字符。用一个字符表示常见字符,用二个字节表示拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚等,用三字符表示常见汉字等,四至六个字节的字符比较少见。
    UTF-8这么好,是不是大家都开始用UTF-8呢?不一定。UTF-8兼容性好,但正因为要兼容各种情况,所以解析内容的时候随时需要判断,效率低。所有有一些操作系统,如Windows的Unicode编码方式采用了UTF-16,像Java的字符串编码也是采用UTF-16,C++新标准支持UTF-16、UTF-32。新语言Rust更是直接采用了UTF-32编码方式,相当于空间换效率。

    1.9. 代码页

    代码页(CodePag):,代码页是字符集的数字值,不同的语言使用不同的代码页。例如,ANSI代码页为 1252,日文代码页为 932,简体中文(GBK)代码页为 936,繁体中文(Big5)代码页为 950。
    更多代码页信息见:https://docs.microsoft.com/en-us/previous-versions/aa913244(v=msdn.10)

    1.10. 本地化

    本地化(Locale)在这里是指操作系统中的一个概念,即操作系统的相关信息要本地化,主要是指语言编码及显示的本地化,也即执行代码和UI显示的本地化。

    • 执行代码的本地化
      操作系统如何读写解析一个文本。有一个文本,其内容是以GBK编码、Big5编码,抑或还是以UTF-8编码。如简体中文操作系统默认的本地化是指当前进程运行代码使用字符集为GBK字符集。如果有一个文本存储的是以Big5编码的文本内容,想在简体操作系统中正常识别这些内容,我们就需要调用API setlocale来设置代码页,来让当前线程代码的本地化为big5字符集。
    • UI显示的本地化
      UI显示的本地化主要是针对应用程序的资源显示本地化,即UI要显示操作系统对应的本地化语言。例如台湾和香港使用的都是繁体字,都是使用Big5编码集,但是台湾的本地化和香港的本地化可能有一些小的差别,个别地方的翻译可能不一样。例如新加坡和中国大陆使用简体汉字,都是使用GBK编码,但是操作系统中的很多词在两地表示是不一样的。

    1.11. 大小端

    • 大小端
      我们知道根据CPU处理数据流的不同,有大端和小端之分。
    • UTF-16
      UTF-16一般是2BYTE表示,高BYTE中的一些BIT用做保留位。那么在CPU处理数据流的时候,就需要区分大端还是小端,以提处理效率。Windows文本保存类型分UTF-16 LE(Little-endian)和UTF-16 BE(Big-endian),即在文本前面2BYTE字节头,FF FE表示小端,FEFF表示大端。
    • 带BOM的UTF-8
      UTF-8本身设计的时候,每个BYTE的高位就是标记位,是可以区分大小端的。所以UTF-8理论上是不需要区分大小端的。Windows设计时,加了BOM头,用以更快地识别当前文本的编码方式。如EFBBBF表示UTF-8大端。Windows文件驱动可以自动根据文本内容识别出普通的不带BOM的UTF-8编码文本。

    1.12. 半角与全角

    • 半角:
      用ASCII编码表示的字符即是半解字节,等价于英文字符,每个字符占1BYTE。
      如:ABCD,.?012345
    • 全角
      简体操作系统下的GBK编码默认将所有的英文字符用GBK编码重新实现了一套,每个字符占2BYTE。
      如:ABCD,。?012345

    1.13. 语言包

    Windows操作系统的UI文字显示默认是与当前操作系统环境语言一致。Windows支持修改当前UI文字的显示语言。即通过Control Panel\All Control Panel Items\Region and Language\Keyboards and Language\Display language\Choose a display language来安装并选择相应的语言包,即可以显示相应的语言。
    操作系统语言包主要有2个作用:

    • 翻译作用,将操作系统中所有涉及到语言翻译成对应的语言包内容。
    • 描述作用,如英文操作系统默认已经有了所有语言的代码页(也即字符集),操作系统知识每个汉字对应的GBK编码是多少,但是操作系统的显示驱动配合显示,如字体等。
    • 注意:语言包只是修改UI显示的本地化,并不会修改代码执行的本地化。
      GetUserDefaultUILanguage()获取的是UI的LCID(LocalelID),即语言包设置的LCID。例如台湾和香港使用的都是繁体字,都是使用Big5编码集,但是台湾的本地化和香港的本地化可能有一些小的差别,个别地方的翻译可能不一样。例如新加坡和中国大陆使用简体汉字,都是使用GBK编码,但是操作系统中的很多词在两地表示是不一样的,即两国的本地化不同,即LCID不同。
      更多LCID见:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c

    2. 字符编码的应用

    2.1. UTF-16和MBCS之C标准函数

    // UTF-16在Windows中即代表Unicode,也即宽字符集WCS
    // MBCS,多字节字符集,泛指GBK、BIG5等字符集
    wchar_t szUnicode[32] = {0};
    char szTran[32] = {0xc3, 0x61};
    if (-1 == mbstowcs(szUnicode, szTran, sizeof(szTran)))
    {
    	return TRUE;
    }
    char szSimp[32] = {0};
    if (-1 == wcstombs(szSimp, szUnicode, sizeof(szSimp)))
    {
    	return TRUE;
    }
    

    2.2. GBK转UTF-8

    int GBK2UTF8(char *szGbk,char *szUtf8,int Len)
     {
    	 // 先将多字节 GBK(CP_ACP 或 ANSI)转换成宽字符 UTF-16
    	 // 得到转换后,所需要的内存字符数
    	 int n = MultiByteToWideChar(CP_ACP,0,szGbk,-1,NULL,0);
    	 // 字符数乘以 sizeof(WCHAR) 得到字节数
    	 WCHAR *str1 = new WCHAR[sizeof(WCHAR) * n];
    	 // 转换
    	  MultiByteToWideChar(CP_ACP, // MultiByte 的代码页 Code Page
    	  0, //附加标志,与音标有关
    	  szGbk, // 输入的 GBK 字符串
    	  -1, // 输入字符串长度,-1 表示由函数内部计算
    	  str1, // 输出
    	  n // 输出所需分配的内存
    	  );
    	 
    	  // 再将宽字符(UTF-16)转换多字节(UTF-8)
    	  n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
    	  if (n > Len)
    	  {
    	  delete[]str1;
    	  return -1;
    	  }
    	  WideCharToMultiByte(CP_UTF8, 0, str1, -1, szUtf8, n, NULL, NULL);
    	  delete[]str1;
    	  str1 = NULL;
    	 
    	  return 0;
      }
    

    2.3. UTF-8转GBK

    int UTF82GBK(char *szUtf8,char *szGbk,int Len)
    {
    	int n = MultiByteToWideChar(CP_UTF8, 0, szUtf8, -1, NULL, 0);
    	WCHAR * wszGBK = new WCHAR[sizeof(WCHAR) * n];
    	memset(wszGBK, 0, sizeof(WCHAR) * n);
    	MultiByteToWideChar(CP_UTF8, 0,szUtf8,-1, wszGBK, n);
    
    	n = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    	if (n > Len)
    	{
    		delete[]wszGBK;
    		return -1;
    	}
    
    	WideCharToMultiByte(CP_ACP,0, wszGBK, -1, szGbk, n, NULL, NULL);
    
    	delete[]wszGBK;
    	wszGBK = NULL;
    
    	return 0;
    }
    

    2.4. Big5转GBK

    // 950即繁体的CodePage,936即简体的CodePage
    wchar_t szUnicode[32] = {0};
    char szTran[32] = {0xc3, 0x61};
    setlocale(LC_ALL, ".950");
    if (-1 == mbstowcs(szUnicode, szTran, sizeof(szTran)))
    {
    return TRUE;
    }
    setlocale(LC_ALL, ".936");
    char szSimp[32] = {0};
    if (-1 == wcstombs(szSimp, szUnicode, sizeof(szSimp)))
    {
    return TRUE;
    }
    

    2.5. 其他转换方法

    // Cstring转换Unicode
    CString str(_T("Soccer is best!"));
    BSTR pstrUni = str.AllocSysString();
    SysFreeString(pstrUni);
    
    // ATL Unicode和MBCS转换
    USES_CONVERSION;  
    CString tmpStr;  
    char*LineChar="fdsfdsa";  
    const WCHAR * cLineChar = A2W(LineChar);  
    USES_CONVERSION;  
    CString tmpStr;  
    WCH LineChar="fdsfdsa";  
    const char* cLineChar = A2W(LineChar); 
    

    2.6. Windows语言包及相关

    我们知道Windows操作系统是可以设置不同的语言的。不同语言相当一个语言包,一种语言包可能几十MB,语言多了,这个语言包也比较大。所以windows默认是不包括其他语言的语言包的。如,简体中文操作系统需要显示为英文,需要安装英文语言包。英文操作系统要显示中文,要安装东亚语言包(包括中文、日文、韩文)。安装好语言包,选择对应语言,重启,即可以显示相应的语言。GetUserDefaultUILanguage可以获取安装语言包后选择的语言人LCID(如下图)。GetSystemDefaultUILanguage和GetSystemDefaultLangID的作用不同,详细MSDN。

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Win10 字符集修改为 UTF-8

    千次阅读 2020-09-21 14:30:25
    Windows 操作系统默认使用 GBK 字符集,这对程序员很不友好。 如今时代变了,Win10 已经悄悄上线了 UTF-8 字符集。只需短短几步,就可轻松将字符集修改为 UTF-8。 依次点击控制面板 -> 时钟和区域 -> 区域,弹...
  • windows cmd修改字符集utf8

    千次阅读 2019-06-14 09:48:42
    chcp 65001
  • 1、win+r 打开运行窗口 2、输入regedit打开注册表编辑器 3、定位到HKEY_CURRENT_USER\Console\%SystemRoot%_...4、修改其中Codepage选项,勾选十进制,windows默认是936 437(英语) 65001(utf-8) 936(GBK)
  • 说明:代码页是“字符集编码”的别名,也有人称为“内码表”。 下表列出了所有支持的代码页及其国家(地区)或者语言: 代码页 国家(地区)或语言 437 美国 708 阿拉伯文(ASMO 708) 720 阿拉伯文(DOS) 850 多语言(拉丁...
  • 如何查看windows操作系统当前使用的字符集 Chcp 显示活动控制台代码页数量,或更改该控制台的活动控制台代码页。如果没有参数的情况下使用,则 chcp 显示活动控制台代码页的数量。 语法 chcp [nnn] 参数 指定代码...
  • Windows mysql默认字符集修改

    千次阅读 2018-11-04 17:16:37
    一、通过MySQL命令行修改:   set character_set_client=utf8;  set character_set_connection=utf8;  set character_set_database=utf8;  set character_set_results=utf8;...对于字符集的支持细化到四...
  • 查看oracle dmp字符集的小工具,自己写的绿色小软件,支持大于10KB的DMP文件(多大就行),
  • MySQL字符集

    千次阅读 2019-06-30 21:27:10
    mysql字符集基础知识 1.什么叫字符集?常用的字符集的分类? 字符集就是字符和编码的集合,常用的中文字符集是gbk,英文字符集是ASCII ...windows 使用chcp命令查看,查看到是936,说明是中文字符集 linu...
  • Oracle数据库字符集的查询

    千次阅读 2021-04-30 09:59:32
    Oracle数据库字符集通俗的讲就是一个字节数据的相关的解释的符号集合,它具有 大小的差异,也有互相包容关系。Oracle是支持国家语言的相关体系结构,它允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,...
  • 查看mysql字符集及修改表字符集

    千次阅读 2021-01-20 01:53:18
    包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据表和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • MySQL查看字符集以及修改字符集

    千次阅读 2022-04-15 14:12:03
    MySQL查看字符集以及修改字符集
  • ORACLE系统字符集设置

    千次阅读 2021-05-06 08:44:46
    修改Oracle客户端字符集方法:1:可以通过修改注册表键值永久设置,类似于这样的键值:HKEY_LOCAL_MACHINE/SOFTWARE/Oracle/HOME0下,如一般的简体中文nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16G...
  • Windows下更改MySQL5.7默认字符集为utf8

    千次阅读 2020-09-08 19:05:52
    mysql 的默认编码格式是latin1, 数据库添加或查找中文的时候就会报错,解决办法是更改默认编码为utf8,步骤如下: ...如果上述位置没找到的话,则C:\ProgramData\MySQL\MySQL Server 5.7下面, 我的就是
  • 修改oracle字符集

    千次阅读 2021-05-01 10:37:53
    一 修改数据库SERVER端字符集数据库字符集在创建后原则上不能更改。如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换,或通过ALTER DATABASE CHARACTER SET语句修改字符集,...
  • Windows系统ORACLE修改字符集

    千次阅读 2017-07-10 09:26:29
    1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN 2.输入set ORACLE_SID=你想进入的...4.将数据库启动到RESTRICTED模式下做字符集更改:  SQL> conn /as sys
  • plsql查看数据库字符集

    千次阅读 2021-01-14 08:35:44
    oracle字符乱码问题的解决今天开发人员说表字段后添加注释出现乱码,但其他开发人员添加注释无此原因,于是判断是其客户端字符集设置问题。出现乱码的注释如图解决方法1 查看客户端字符集SQL> select userenv('...
  • 转载:查看本地windows字符集方法

    千次阅读 2014-09-05 19:59:04
    转载自:http://blog.itpub.net/519536/viewspace-5806101.第一种方法是...第二种方法是cmd命令行标题栏右键属性,弹出对话框内可以看到当前的字符集编码附录:Windows Codepage 936 00 = U+0000 : NULL01 = U+000
  • Mysql 查看字符集设置

    千次阅读 2021-01-19 02:30:52
    包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据表和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • 在windows cmd 模式下,输入命令 : chcp如上图,我的活动代码页为936,意思是"中国-简体中文(GB2312)"说明:代码页是“字符集编码”的别名,也有人称为“内码表”。下表列出了所有支持的代码页及其国家(地区)或者...
  • MySQL 字符集设置

    千次阅读 2020-12-22 12:44:46
    我们将讨论以下几个问题:字符集问题表征修正配置,设置默认字符集编码使用过程中强制设置字符集编码1.字符集问题表征MySQL默认latin1(其实就是ISO-8859-1)字符集。这显然不能满足我们的需要,因此我们把它调整为...
  • Java常用字符集编码详解

    千次阅读 2021-02-26 12:01:02
    Java常用字符集编码详解Web开发的时候经常会遇到一些字符编码的错误,如页面乱码等问题,所以有必要需对字符编码有所了解,以下是Ricki收集的一些资料(可能不是很全,但希望对你有所帮助)Java标准字符集:所谓Java...
  • vs配置选项“使用多字节字符集”和“使用Unicode字符集”的区别 VS集成开发环境,字符集选择“使用多字节字符集”和“使用Unicode字符集”的直接区别就是:编译器是否增加了宏定义——UNICODE。当选择“使用Unicode...
  • 字符集 老外:一个字符对应一个字节(多字节) 中文:一个字符对应多个字节(宽字节) Unicode 具体 utf-8 (1个对应3个),GBK(1个对应2个) 注:VS的属性-配置属性-常规-字符集 处可设置。 MessageBox(“aaa”)...
  • mysql安装时默认设置的字符集是latin1,而它是不支持中文,所以导致当插入的数据含有中文时,会出现乱码或者无法插入到数据库中。 因此我们需要修改mysql的默认字符集为utf8,(注意不是UTF−8\color{red}注意不是...
  • 如何修改mysql字符集

    千次阅读 2021-02-11 23:09:46
    、安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布不同的文件下;不像windows一样放在同一目录下,只需修改...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 246,172
精华内容 98,468
关键字:

windows字符集在哪