- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含阿拉伯字符串的 MySQL 表。但是表字符集是latin1
。我想将其转换为 utf8
以便表格可以正确显示。
我经历过这个:http://www.bothernomore.com/2008/12/16/character-encoding-hell/
但它不适用于阿拉伯字符。我在这里也看到了一个帖子:Latin1 to UTF8 conversion评论说:
latin1 doesn't have support for Arabic characters. How can your text be stored as latin1?
这是否意味着我无法将其转换为任何可以显示阿拉伯字符的字符集。
最佳答案
Latin1 (ISO 8859-1) 代码集适用于西欧语言,根本没有阿拉伯字符。您需要 ISO 8859-6 才能获得阿拉伯字符。现在,您可以拥有 0x00..0xFF 范围内的代码点,这些代码点在 8859-6 中是有效的阿拉伯字符,在 8859-1 中显示为欧洲重音字符,您可以安排将 8859-6 值映射到 UTF8。 8859-6的量程下半部分与8859-1相同;事实上,所有 8859-x 代码集都是如此,并且“一半”实际上是 5/8,因为代码点 0x80..0x9F 是控制代码。
8859-6 中定义的与 8859-1 中不同的字符从 0xA0 开始。 8859-6 代码集中有很多空白。
A0 U+00A0 NO-BREAK SPACE
A4 U+00A4 CURRENCY SIGN
AC U+060C ARABIC COMMA
AD U+00AD SOFT HYPHEN
BB U+061B ARABIC SEMICOLON
BF U+061F ARABIC QUESTION MARK
C1 U+0621 ARABIC LETTER HAMZA
C2 U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE
C3 U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE
C4 U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE
C5 U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW
C6 U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE
C7 U+0627 ARABIC LETTER ALEF
C8 U+0628 ARABIC LETTER BEH
C9 U+0629 ARABIC LETTER TEH MARBUTA
CA U+062A ARABIC LETTER TEH
CB U+062B ARABIC LETTER THEH
CC U+062C ARABIC LETTER JEEM
CD U+062D ARABIC LETTER HAH
CE U+062E ARABIC LETTER KHAH
CF U+062F ARABIC LETTER DAL
D0 U+0630 ARABIC LETTER THAL
D1 U+0631 ARABIC LETTER REH
D2 U+0632 ARABIC LETTER ZAIN
D3 U+0633 ARABIC LETTER SEEN
D4 U+0634 ARABIC LETTER SHEEN
D5 U+0635 ARABIC LETTER SAD
D6 U+0636 ARABIC LETTER DAD
D7 U+0637 ARABIC LETTER TAH
D8 U+0638 ARABIC LETTER ZAH
D9 U+0639 ARABIC LETTER AIN
DA U+063A ARABIC LETTER GHAIN
E0 U+0640 ARABIC TATWEEL
E1 U+0641 ARABIC LETTER FEH
E2 U+0642 ARABIC LETTER QAF
E3 U+0643 ARABIC LETTER KAF
E4 U+0644 ARABIC LETTER LAM
E5 U+0645 ARABIC LETTER MEEM
E6 U+0646 ARABIC LETTER NOON
E7 U+0647 ARABIC LETTER HEH
E8 U+0648 ARABIC LETTER WAW
E9 U+0649 ARABIC LETTER ALEF MAKSURA
EA U+064A ARABIC LETTER YEH
EB U+064B ARABIC FATHATAN
EC U+064C ARABIC DAMMATAN
ED U+064D ARABIC KASRATAN
EE U+064E ARABIC FATHA
EF U+064F ARABIC DAMMA
F0 U+0650 ARABIC KASRA
F1 U+0651 ARABIC SHADDA
F2 U+0652 ARABIC SUKUN
上面未列出的 0xA0..0xFF 范围内的任何字符都不是 8859-6 中的有效阿拉伯字符。
iconv
程序大概可以处理 8859-6 到 UTF-8 的转换;我也有一个程序可以做到这一点,这是该程序的一个数据文件。 (给定合适的表,它将任何单字节代码集 SBCS 转换为 UTF8。)
参见:http://czyborra.com/charsets/iso8859.html#ISO-8859-6特别针对 8859-6 和 http://czyborra.com/charsets/iso8859.html通常用于有关 ISO 8859-x 代码集的信息。它还包含指向讨论不同代码集的其他页面的链接。
Does it mean I cannot convert it to any character set which could display the Arabic characters?
没有;您可以转换它,但这绝对意味着您必须理解“Latin1 中的阿拉伯字符”到底是什么意思,因为该语句本身并不意味着任何东西 — 它在术语上自相矛盾。
我对您的陈述进行了合理的调整,对您获得的数据进行了有意义的解释,但我不能保证这是正确的解释。
您必须知道数据是如何输入的,它应该是什么意思,并决定如何翻译它。如果您的数据是由使用 8859-6 的人输入的,但它存储在假设它是 8859-1 的列(表,数据库)中,您可以提取值,转换为 UTF8 并将 UTF8 数据插入期望的数据库中UTF8。 (实际上,由于 8859-1 将接受任意字节序列,您可以将 UTF8 填充到 8859-1 列中,注意每个阿拉伯字符将有两个字节。它不会像 8859-1 那样有意义, 但只要您不截断任何内容,它就会是准确的。如果您截断字符串,有时,您会在 UTF8 字符中间中断,然后任何将数据解释为 UTF8 的内容都会对你不满意。
关于mysql - 无法将以 latin1 编码的阿拉伯字符转换为 utf8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19852429/
Google Web字体上的某些字体支持多个“字符集”。关键是,如果我使用的Web字体仅提供“拉丁”字形,那么将页面翻译成不支持该字形的语言的用户将清楚地注意到困惑的文本。 我希望我的网络字体能够支持
我有(我相信)一个独特的情况;有点困惑。这是交易。 情况:我有一个单一语言的网站,其中所有内容(内容、链接)都使用非拉丁字符。 (西里尔文)(utf-8) 该网站旨在将全局读/说俄语的人联系起来。 问
我在数据库中有 10 个表。其中 9 个只存储 Latin-1 支持的标准 ascii 1 字节字符的数据。其中 1 个要求我存储仅受 UTF8 支持的特殊字符。我想使用相同的 MySQL 连接对象(
我想在 Windows 中从 eclipse 执行 Pig 脚本。我已关注this link 。但它不起作用。是否需要任何插件才能做到这一点?或者只有 pig.jar 就可以了? 最佳答案 试试这个,
题目地址:https://leetcode.com/problems/goat-latin/description/ 题目描述 Asentence S is given, composed of
我正在开发一个将普通单词转换为 pig 拉丁语的函数,但我无法将所有内容组合在一起;它必须适用于加州、手套和八。什么地方不正常? function translate(word) {
我正在尝试编写一个 pig 拉丁语翻译器,但我的网页一直显示未定义,并且无法从文本区域读取。 html 看起来不错,但最终用户需要输入的文本区域中的文本未正确显示。我尝试使用 .textContent
我写这封信是因为今天我遇到了一个问题,尽管到处搜索并尝试了许多不同的语句,但我无法以任何方式解决。 我有这个输入文件: 3 {(car pen house glass)} 5 {(battery ph
我有一个以前用 Latin-1 编码的文件。现在,当我打开这个文件时,我只得到原始编码。即状态行中的 -t:。文件中可能有一些非 Latin-1 字符,至少可以打开其他 Latin-1 文件。 我只想
我正在编写一个程序,它接受一个字符串,将其拆分为单词,将单词转换为 pig 拉丁语,然后返回结果字符串。我已经让它工作到一定程度了。 例如,如果我在程序中输入这些不以元音开头的单词,我会得到: pig
#include #include #include #define isvowel(v) (v=='a' || v=='e' || v=='i' || v=='o' || v=='u') in
所以我是编码的新手,我遇到了一些问题...我的程序应该要求用户输入,并且需要假设所有输入都是小写...并且需要假设没有额外的空格,并且需要假设它以句点结尾。然后该程序会将文本翻译成 pig latin
希望您一切顺利。 我对 Java 和这个网站都很陌生。虽然这可能看起来很长,但我只需要两件事的帮助,所以请帮忙,就像我说的,我对这一切都很陌生,所以越彻底越好。我必须做一个项目,我们必须将常规英语单词
我刚刚收到一个 SQL 插入脚本,但它在重复键输入时失败了: 我正在尝试插入: 1)蒙大拿 2)蒙大拿 我的表都是utf8_spanish2_ci, 谁能解释为什么会这样? 最佳答案 utf8_spa
我想编写一个函数,它将接受一个字符串并将单词转换为 Pyg 拉丁语。这意味着: 如果单词以元音开头,则在末尾添加“-way”。示例:“ant”变成“ant-way”。 如果单词以辅音簇开头,则将该辅音
所以我应该使用 stringConvertToPigLatin(string word) 函数将英语单词转换为 Pig Latin。我在网上能找到的所有答案都是使用 char[],我不允许这样做。如果
这看起来像是家庭作业,但请放心,这不是家庭作业。只是我们在 c++ 类(class)中使用的书中的一个练习,我正在尝试提前阅读指针。 书上的练习告诉我将一个句子拆分成标记,然后将它们中的每一个转换成
所以,我尝试并尝试制作这个 c++ pig 拉丁语程序,但它就是行不通。这是我的代码: int main() { string tmp = ""; char a; cout << "String: "
我最近在工作中遇到了这个问题,是关于pig flatten的。我用一个简单的例子来表达它 两个文件 ===文件1=== 1_a 2_b 4_d ===file2(制表符分隔)=== 1个 2乙 3c
在 Pig 中执行多级过滤后,我得到以下结果 - (2343433,Argentina,2015,Sci-Fi) (2343433,France,2015,Sci-Fi) (2343433,Germa
我是一名优秀的程序员,十分优秀!