问题标签 [cp1252]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 性格地狱
我需要帮助。我必须从文件中读取数据并将其存储到 Oracle 数据库中。当像“à”或“À”这样的字符出现在数据中时,我会遇到麻烦。例如,“à”被读取并变成“Ô到我的应用程序中,因此,当我尝试将数据保存到数据库中时,有时,数据库会抱怨要保存到的字段的值太大。我也试过
Normalizer.normalize(row, Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
我也关注编码。我注意到,如果我在 Windows 机器上的数据文件(Cp1252 文件)上运行我的应用程序,我没有收到任何错误。可悲的是,当我在 Linux 机器上运行这些东西时,我遇到了错误。我正在使用 java 6.TIA。
python - 在 python 中正确读取 Windows-1252(cp1252) 文件中的文本
好吧,正如标题所示,我遇到的问题是从 python 中的 windows-1252 编码文件中正确读取输入并将所述输入插入到 SQLAlchemy-MySql 表中。
当前系统设置:
Windows 7 VM,带有输出文件的“Roger Access Control System”;
Ubuntu 12.04 LTS VM 与 Windows 系统的共享文件夹,因此我可以使用“Python 2.7.3”访问该文件。
现在到实际问题,对于输入文件,我有一个“VM 共享文件夹”,其中包含通过 Roger 访问控制系统(roger.pl 了解更多详细信息)在 Windows 7 系统上生成的文件,该文件称为“ PREvents.csv" 暗示它的内容,一个 ";" 单独的数据列表。
数据的示例格式:
第 4 个字段包含卡所有者姓名,第 5 个字段包含所有者姓氏,第 6 个字段包含所有者分配的组。
问题在于上述三个字段中的任何一个都可以包含特定于拉脱维亚语言的字符,在示例文件中,单词“Jānis”包含字母“ā”,在 unicode 中是 257。
正如我习惯的那样,我这样打开文件:
到目前为止,一切正常 - 它打开了文件,所以我继续迭代文件的每一行(这是一个连续运行的脚本,所以请原谅循环):
这就是问题开始的地方,如果print repr(firstname)
它打印出来u'J\xe2nis'
,据我所知,这是不正确的 - `\xe2\ 不代表拉脱维亚字符“ā”。
根据事件类型进一步向下循环,我将变量分配给 SQLAlchemy 对象并插入/更新:
在我寻找答案的过程中,我发现了如何定义要使用的默认编码:
这对我没有任何帮助。
基本上,这一切都会导致我无法插入正确的所有者名字/姓氏以及所有者分配的组名,如果它们包含任何拉脱维亚特定字符,例如:
我还想补充一点,我无法更改“PREvents.csv”文件编码,并且“RACS”系统不支持插入 UTF-8 或 Unicode 文件 - 如果您尝试任何一种方式,系统都会为拉脱维亚特有的字符。
如果需要任何其他信息,请现在告诉我,我很乐意提供:)
任何帮助将不胜感激。
git - 如何在字段名中使用特殊字符执行 git cvsimport?
我们有大约 100 个 CVS 存储库,我们希望将它们转换为 git。我们尝试使用git cvsimport
which 工作正常。
但是我们有一些文件名中有特殊字符的文件。特殊字符在新 git 存储库的文件名中最终成为不可打印的字符。
CVS 客户端和 CVS 服务器都在 Windows 上运行。Windows 客户端对所有文件使用 cp1252 字符集。git cvsimport
使用 cygwin 调用,因为它不适用于 Windows。
运行后在 git 中获取正确文件名的任何想法git cvsimport
?
python - 在使用 IDLE 编辑的 Python 代码上执行保存时如何处理非 ASCII 警告?
我经常使用 IDLE 编辑 Python 代码,有时在执行 Save 时会收到 I/O 警告。
我假设我无意中添加了一个非 ASCII 字符,我真的不想声明 cp1252 编码。
有没有一种简单的方法来查找和删除与警告相关的非 ASCII?
涉及的OS版本为Windows 7,Python版本为2.6.5
r - 如何在 R 中读取 .sav SPSS 文件?
我试过read.spps()
了,但我得到一个编码错误:
iconv(names(rval), cp, "") 中的错误:不支持从 'CP1252' 到 '' 的转换此外:警告消息:在 read.spss("persona.sav") 中:persona.sav:无法识别的记录类型 7 , 在系统文件中遇到子类型 18
encoding - 如何解码十进制的cp1252而不是\ x93?
我正在获取网页的源代码,编码为 cp1252。Chrome 可以正确显示页面。
这是我的代码:
从预览部分,我们可以看到
\; = \xc2\xa0
§ = \xc2\xa7
x = x
对于 cp1252 编码标准,我指的是 http://en.wikipedia.org/wiki/Windows-1252#Code_page_layout 和 /Lib/encodings/cp1252.py
当我使用 BeautifulSoup(page, from_encoding="cp1252") 时,一些字符被正确编码,而另一些则不是。
性格 | 十进制编码 | cp1252->utf-8 编码
“| | \xc2\x93(错误)
” | | \xc2\x94(错误)
X | x | \xc2\x92(错误)
§ | § | \xc2\xa7 (好的)
þ | þ
¨ | ¨
' | | \xc2\x92 (错误)
– |
我使用此代码来获得等价:
输出
有些字符无法复制粘贴到编辑器中,比如奇怪的 X 和奇怪的 ',所以我添加了一些代码来处理这个问题。
我可以做什么来获取 \xe2\x80\x9d 而不是 \xc2\x94 for ” ()?
我的设置:
Windows 7
终端:chcp 1252 + Lucida 控制台字体
Python 3.3
BeautifulSoup 4
期待您的回答
php - PHP 正则表达式分隔符
很长一段时间以来,每当我需要使用正则表达式时,我都会标准化使用版权符号©
作为分隔符,因为它是一个不在键盘上的符号,我肯定不会在正则表达式,不像!@ # \ 或 / (有时都在正则表达式中使用)。
代码:
但是,今天我需要使用带有重音字符的正则表达式,其中包括:
代码:
在我的 IDE (Eclipse PDT) 的 PHP 文件中包含这个新的正则表达式后,系统提示我将 PHP 文件保存为 UTF-8 而不是默认的 cp1252。
保存并运行 PHP 文件后,每次我在 preg_match() 或 preg_replace() 函数调用中使用正则表达式时,它都会生成一个通用 PHP 警告(警告:第 x 行的 file.php 中的 preg_match),并且未处理正则表达式.
所以——两个问题:
1)是否有另一个符号可以很好地用作通常在键盘(`~!@#$%^&*()+=[]{};\':",./<>?|\
)上找不到的分隔符,我可以对其进行标准化,而不必担心必须检查每个正则表达式以查看该符号是否实际使用在表达式的某个地方?
2) 或者,当文件格式为 UTF-8 时,是否可以使用版权符号作为标准分隔符?
python - 从 PowerShell 到 python (2.7) 脚本的 Python 管道 cp1252 字符串
在对 stackoverflow 和 python 2.7 文档进行了几天的研究之后,我对此没有任何结论。
基本上我在 Windows 服务器上运行一个 python 脚本,该脚本必须有一个文本块作为输入。这个文本块(不幸的是)必须通过管道传递。就像是:
PS > [something_that_outputs_text] | python .\my_script.py
所以问题是:
服务器使用cp1252编码,由于行政法规之类的,我真的无法更改。当我将文本通过管道传输到我的 python 脚本时,当我阅读它时,它已经带有?
而\xe1
应该是这样的字符。
到目前为止我做了什么:
使用 UTF-8 测试。是的,chcp 65001
并且$OutputEncoding = [Console]::OutputEncoding
“解决它”,因为在 python 中可以完美地获取文本,然后我可以将其解码为 unicode 等。但显然他们不允许我在服务器 /sadface 上这样做。
一个小脚本来测试到底发生了什么:
尝试了codecs
包装和不包装。
我的输入和输出:
--> 所以论点(blé)没有问题,但管道文本(Blá)不好:(
我什至将text
字符串转换为十六进制,是的,它被3f
(AKA mr ?
) 淹没了,所以print
.
[另外:这是我在这里的第一个问题......请随时询问有关我所做的更多信息]
编辑
我不知道这是否相关,但是当我这样做sys.stdin.encoding
时None
更新:所以...我对 cmd 没有任何问题。sys.stdin.encoding
在 cmd 上运行程序时检查,一切正常。我想我的头爆炸了。
ruby - 如何正确将 UTF8 转换为 cp1252 (1.8.7)
我不确定如何告诉Iconv
将我的字符串转码为可读输出。
示例:我正在转换 "LATIN CAPITAL LETTER S WITH CARON" U+0160,呈现为Š
.
Iconv.conv('cp1252', 'UTF8', 'Š'
) 但是返回"\212"
我希望它返回等效的 cp1252 字符0x8A
,也呈现为Š
. 但是打印的结果仍然是"\212"
- 它是八进制表示(\212
对于0x8A
or是八进制138
)。
我还尝试了一些更奇特的编码指令,例如cp1252//IGNORE//TRANSLIT
,具有相同的输出。
我做错了什么,应该怎么做?
谢谢
编辑
Casper 说,控制台输出应该正确呈现字符,但事实并非如此。也许我只是不知道如何将其设置为接受 cp1252。
如果有人能告诉我该怎么做,我将不胜感激 - 我正在使用 Ubuntu 13.04 并且带有 irb 的常规 bash 和 RubyMine 的内置控制台都将输出显示为"\212"
的输出locale
适用en_US.UTF8
于所有值。
Iconv.conv('cp1252', 'UTF8', 'Š').inspect
印刷"\"\\212\""
Iconv.conv('cp1252', 'UTF8', 'Š').each_byte { |b| p b }
印刷品138
和"\212"
php - 如何在 PHP 中创建一串随机的非标准字符?
我想在 PHP 中创建一串非标准字符,例如字符 128-255,然后将所述字符串编码为 CP1252:
我知道这行不通,因为在初始化变量之前解析了转义序列(如果我错了,请纠正我),所以这是我想做的一个例子。
这是我用来测试 CP1252 到 UTF-8 转换的最终代码: