我已经尝试将文本转换为utf8或从utf8转换,这似乎没有帮助.
我越来越:
"It’s Getting the Best of Me"
Run Code Online (Sandbox Code Playgroud)
它应该是:
"It’s Getting the Best of Me"
Run Code Online (Sandbox Code Playgroud)
我正在制作一个javascript应用程序,它.json使用jquery 检索文件并将数据注入其嵌入的网页中.
这些.json文件采用UTF-8编码,并包含重音字符,如é,ö和å.
问题是我不控制将要使用该应用程序的页面上的charset.
有些人将使用UTF-8,但其他人将使用iso-8859-1 charset.这当然会从.json文件中剔除特殊字符.
如何使用javascript将特殊的UTF-8字符转换为iso-8859-1等效字符?
PHP iconv()和mb_convert_encoding()PHP 之间的区别是什么?一个人表现得更好,更快,等等(例如,使用特定的编码)?在什么情况下,一个人比另一个人更受欢迎?
这是我认为我已经知道的:
的iconv()
mb_convert_encoding()
HTML-ENTITIES,转换为和来自Web十六进制代码.还有其他差异吗?
之前LOAD DATA INFILE是在假设CSV文件已latin1编码的情况下运行的.在此导入期间,多字节字符被解释为两个单个字符,然后使用utf-8进行编码(再次).
这种双重编码创造了异常,ñ而不是ñ.
如何纠正这些字符串?
我正在尝试解析CSV文件,理想情况下使用weka.core.converters.CSVLoader.但是我的文件不是有效的UTF-8文件.它主要是一个UTF-8文件,但是一些字段值采用不同的编码,因此没有整个文件有效的编码,但无论如何我需要解析它.除了使用像Weka这样的java库之外,我主要在Scala中工作.我甚至无法使用scala.io.Source读取文件:例如
Source.
fromFile(filename)("UTF-8").
foreach(print);
Run Code Online (Sandbox Code Playgroud)
抛出:
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:337)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:153)
at java.io.BufferedReader.read(BufferedReader.java:174)
at scala.io.BufferedSource$$anonfun$iter$1$$anonfun$apply$mcI$sp$1.apply$mcI$sp(BufferedSource.scala:38)
at scala.io.Codec.wrap(Codec.scala:64)
at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38)
at scala.io.BufferedSource$$anonfun$iter$1.apply(BufferedSource.scala:38)
at scala.collection.Iterator$$anon$14.next(Iterator.scala:150)
at scala.collection.Iterator$$anon$25.hasNext(Iterator.scala:562)
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:400)
at scala.io.Source.hasNext(Source.scala:238)
at scala.collection.Iterator$class.foreach(Iterator.scala:772)
at scala.io.Source.foreach(Source.scala:181)
Run Code Online (Sandbox Code Playgroud)
我很高兴将所有无效字符丢弃或用一些虚拟替换它们.我将有很多这样的文本以各种方式处理,可能需要将数据传递给各种第三方库.理想的解决方案是某种全局设置会导致所有低级java库忽略文本中的无效字节,这样我就可以在不修改的情况下调用此数据上的第三方库.
解:
import java.nio.charset.CodingErrorAction
import scala.io.Codec
implicit val codec = Codec("UTF-8")
codec.onMalformedInput(CodingErrorAction.REPLACE)
codec.onUnmappableCharacter(CodingErrorAction.REPLACE)
val src = Source.
fromFile(filename).
foreach(print)
Run Code Online (Sandbox Code Playgroud)
感谢+ Esailija指出我正确的方向.这引导我如何检测非法的UTF-8字节序列以在java输入流中替换它们? 它提供了核心java解决方案.在Scala中,我可以通过隐式编解码器使其成为默认行为.我想通过在包对象中加入隐式编解码器定义,我可以使它成为整个包的默认行为.
我的服务器从Debian 4更新到5后我才被打倒.我们切换到UTF-8环境,现在我们在浏览器上正确打印文本时遇到问题,因为所有文件都是非utf8编码,如iso- 8859-1,ascii等
我尝试了很多不同的脚本.
我试过的第一个是"iconv".那个不起作用,它改变了内容,但是enconding的文件仍然是非utf8.
与enca,encamv,convmv和我通过apt-get安装的其他工具相同的问题.
然后我发现了一个python代码,它使用chardet Universal Detector模块来检测文件的编码(工作正常),但使用unicode类或编解码器类将其保存为utf-8不起作用,没有任何错误.
我发现将文件及其内容转换为UTF-8的唯一方法是vi.
这些是我为一个文件执行的步骤:
vi filename.php
:set bomb
:set fileencoding=utf-8
:wq
Run Code Online (Sandbox Code Playgroud)
而已.那一个很完美.但是如何通过脚本运行它.我想编写一个脚本(linux shell),它遍历一个获取所有php文件的目录,然后使用上面的命令使用vi转换它们.因为我需要启动vi应用程序,我不知道如何做这样的事情:
"vi --run-command=':set bomb, :set fileencoding=utf-8' filename.php"
希望可以有人帮帮我.
如何使用JAX-RS设置charset?我已经尝试@Produces("text/html; charset=UTF-8")但是被忽略了,只有text/htmlHTTP头发送.我想在MessageBodyWriter中设置charset,但不希望通过我自己的反射分析@Produces注释来提取媒体类型.
我有这个文件(http://b7hq6v.alterupload.com/en/),我想在R中阅读read.csv.但我无法检测到正确的编码.它似乎是一种UTF-8.我在WindowsXP机器上使用R 2.12.1.任何帮助?
是否真的有必要unsigned char像在一些处理字符编码或二进制缓冲区的库中一样使用二进制数据?要理解我的问题,请看下面的代码 -
char c[5], d[5];
c[0] = 0xF0;
c[1] = 0xA4;
c[2] = 0xAD;
c[3] = 0xA2;
c[4] = '\0';
printf("%s\n", c);
memcpy(d, c, 5);
printf("%s\n", d);
Run Code Online (Sandbox Code Playgroud)
两者printf's输出 correctly, where f0 a4 ad a2Unicode代码点的编码U+24B62 ()在十六进制中.
甚至memcpy还正确地复制了char所持有的位.
什么推理可能主张使用unsigned char而不是plain char?
在其他相关问题unsigned char中突出显示,因为它是唯一的(字节/最小)数据类型,保证C规范没有填充.但正如上面的例子所示,输出似乎不受任何填充的影响.
我使用VC++ Express 2010和MinGW来编译上面的内容.虽然VC给出了警告
warning C4309: '=' : truncation of constant value
输出似乎没有反映出来.
PS这可以标记为可能重复的字节缓冲区应该是有符号的还是无符号的char缓冲区?但我的意图是不同的.我在问为什么一些似乎工作正常的东西char应该输入unsigned char?
更新:引用N3337,
Section …
我有一个MySQL转储,我试图恢复:
mysql -u"username" -p"password" --host="127.0.0.1" mysql_db < mysql_db
Run Code Online (Sandbox Code Playgroud)
但是,这引发了一个错误:
ERROR 1115 (42000) at line 3231: Unknown character set: 'utf8mb4'
Run Code Online (Sandbox Code Playgroud)
这是第3231-3233行:
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
Run Code Online (Sandbox Code Playgroud)
我正在使用MySQL 5.1.69.我该如何解决这个错误?