utf-8 相关问题

UTF-8是一种字符编码,它使用一到四个字节的字节序列来描述每个Unicode代码点。它向后兼容ASCII,同时仍支持所有Unicode代码点的表示。

从绝对路径创建文件,其中包含德语变音符号

我在从绝对路径创建文件时遇到问题,该路径包含德语变音符号。 (在 Windows 上工作) 这是示例代码: 公共无效createFile(字符串路径){ 系统.out.

回答 1 投票 0

已弃用的 utf8_encode($foo) 可以工作,而 mb_convert_encoding($foo, 'UTF-8) 则不行

在 web.config 设置为的 IIS 环境中,将数据从 PHP(使用 default_charset = 'UTF-8' 设置)传输到 MySQL 时,我遇到了一个非常烦人的问题: 在 web.config 设置为 IIS 环境中,将数据从 PHP(使用 default_charset = 'UTF-8' 设置)传输到 MySQL 时,我遇到了一个非常烦人的问题: <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" /> 还在具有相同默认字符集的 Apache 环境中进行了测试,结果相同。我还设置了 MySQLi 在任何查询之前设置字符集: $mysqli->set_charset('UTF-8'); 我还有一组准备好的语句,用于搜索字符串中的each字符,以使用以下方法将任何非 UTF-8 编码转换为 UTF-8: mb_convert_encoding($char, 'UTF-8', mb_detect_encoding($char)); 在尝试失败后,通过使用相同的过程解析整个字符串: mb_convert_encoding($string, 'UTF-8', mb_detect_encoding($string)); 带有脚本的文件的内容类型设置为标题上的 content-type charset UTF-8。但这仍然没有解决问题。 我也,已将 MySQL 表和模式的所有排序规则设置为 utf8mb4,当然还使用“utf8mb4_unicode_520_ci”。尽管如此,问题仍然存在。 我写的分割字符串的函数如下: static private function split_and_convert($value, $encoding = 'UTF-8') { $split = mb_str_split($value); $filter = []; foreach($split as $chr) { $from = mb_detect_encoding($chr); $encoded = ($from !== $encoding) ? mb_convert_encoding($chr, $encoding, $from) : $chr; $filter[] = $encoded; // echoing for testing echo 'char ' . $encoded . ' (' . $from . ')<br>'; } return join('', $filter); } 这回显了以下尝试保存的内容Martínez: char M (ASCII) char a (ASCII) char r (ASCII) char t (ASCII) char � (UTF-8) char n (ASCII) char e (ASCII) char z (ASCII) MySQL 抛出以下错误: Error No: 1366 - Incorrect string value: '\xEDnez' for column 'contactLast' at row 1 还是没有喜悦。但如果我这样做,它就像一个魅力: static private function split_and_convert($value, $encoding = 'UTF-8') { $split = mb_str_split($value); $filter = []; foreach($split as $chr) { $from = mb_detect_encoding($chr); $encoded = ($from !== $encoding) ? mb_convert_encoding($chr, $encoding, $from) // set to actually encode the 'UTF-8' encoded char // I'm supposed not to do this, but is what works // which makes no sense : utf8_encode($chr); $filter[] = $encoded; // echoing for testing echo 'char ' . $encoded . ' (' . $from . ')<br>'; } return join('', $filter); } 结果如下: char M (ASCII) char a (ASCII) char r (ASCII) char t (ASCII) char í (UTF-8) char n (ASCII) char e (ASCII) char z (ASCII) MySQL 不会抛出任何错误。如果我将 utf8_encode 替换为 mb_convert_encoding($encoded, 'UTF-8'),我会得到与不过滤字符串相同的错误。 我怀疑 mb_detect_encoding 要么错误地检测到字符编码,要么只是 mb_convert_encoding 没有完成它的工作。 如果有人可以提供帮助,我将不胜感激。我花了几个小时寻找解决方案,但所提供的解决方案都不起作用。我发现自己陷入了困境,因为有效的方法已被弃用。 所以,这些是我面临的问题列表: mb_convert_encoding -> 不编码或编码为 UTF8 以外的内容 mb_detect_encoding -> 未正确检测 字符串被编码为 ASCII 而不是 UTF-8 作为请求头中的字符集。 困惑:为什么我需要将 UTF-8 编码的字符编码为 UTF-8 才能工作? 在寻找答案和一整天的研究之后,这就是问题所在。过度加工。在开发过程中的某个时刻,会设置一个中间人来验证每个 POST/GET 请求并处理每个值,以确保发送的编码是 UTF-8。我正在重构的代码已经处理了数据。 中间人是使用utf8_encode进行编码的,所以,我怀疑函数检查本身是为了避免过度处理。我还必须重构中间人,这样就不会有冲突。 所以,这就是问题所在,两个不同的代码正在处理编码,从而产生了冲突。一旦我重构了中间人,问题就消失了。 总之,问题不是mb_convert_encoding或mb_detect_encoding,如果您有类似的问题,请确保您正在处理的代码没有使用两种不同的方法使用不同的功能执行类似的过程。 在我的例子中,中间人没有验证或设置为检测字符串是否已经编码为 UTF-8,它只是实现编码。这也是我获得报酬来重构代码的原因。 对于我来说,为什么正确的 UTF-8 编码字符串会导致 MySQL 抛出错误,这仍然是没有意义的。为此,我怀疑过度处理正在破坏输入。

回答 1 投票 0

Python - Get 命令输出无法解码

我目前正在开发一个项目,我需要在 powershell 中运行命令,并且部分输出不是英语(特别是希伯来语)。 例如(问题的简化版本),...

回答 1 投票 0

如何让 UTF-8 在 Windows 上的现代 PowerShell 中完美运行?

我有一个 C++ 程序,可以输出原始 UTF-8,并且在 Linux 上完美运行,但在 Windows shell 上,输出效果不太好。 “®”变成“┬«”,“©”变成“┬⌐&

回答 1 投票 0

PHP:西里尔字符显示不正确

最近我将托管从一个提供商切换到另一提供商,并且在显示西里尔字符时遇到问题。从数据库读取的字符显示正确,但是字符

回答 9 投票 0

PhantomJS 将字符变成坏数据

我正在phantomjs中运行一个js文件 var settings = {模式: 'w', 字符集: 'UTF-8'}; page.open(路径,设置,功能(状态){ if (状态!== "成功") { console.log("无法访问

回答 4 投票 0

python3中使用selenium的编码问题

我在 selenium python 中抓取 unicode 页面时遇到了奇怪的问题。 我正在分享完整的代码,该代码给了我错误的编码。我几乎尝试了所有方法,但到目前为止没有成功,有任何帮助吗...

回答 2 投票 0

Dreamweaver 无法保存 php 文件?

Dreamweaver 无法保存 php 文件。 错误消息显示: 文档的当前编码无法正确保存文档中的所有字符,您可能需要将其更改为 UTF-8 或

回答 8 投票 0

Win32 资源对话框文本 - UTF-8 - 仅显示每个字符串的第一个字符

我希望在 Windows 桌面 (Win32/MFC) 应用程序中的所有位置从 ASCII 迁移到 UTF-8。这与通常迁移到 UTF-16 不同。这个想法是,需要更少的改变......

回答 2 投票 0

尝试使用 HPSG PET 解析器

我正在尝试使用 PET 解析器,但给定的使用文档不够。谁能给我推荐一篇关于使用 PET 的好文章或教程?支持UTF-8吗?

回答 2 投票 0

Linux 上的 Pandas 导入 UTF 8 (BOM) csv,其中 BOM 标题作为列名称中的明文

Linux 和 MacOS 上导入 csv 数据的区别 大家好, 在Linux下使用UTF8(BOM)编码使用pandas.read_csv导入csv文件时,第一列名称包含BOM为

回答 1 投票 0

utf-8 编码,奇怪的字符,GUI 不起作用

我正在开发一个 MQTT 应用程序,它通过板获取一些值并将其带到 GUI。所以我也用 C 和 python(用于 GUI)进行编程。 我在 UTF-8 编码方面遇到问题。 在 C 语言中我写...

回答 2 投票 0

打印完整的 ASCII 艺术作品

我正在尝试像这样打印ascii艺术: 打印((”””\ ._ 哦 \_`-)|_ ,"" \ ...

回答 8 投票 0

如何用C将utf-8字符写入csv文件?

如何用 C 将 UTF-8 字符写入 CSV 文件?我想写 Ş、Ğ 或 Á 等字母。我也不能写在不同的栏目中。我猜我的电脑有问题:它确实写了...

回答 1 投票 0

UTF-8 WordPress 编码问题

我们有一个 WordPress 网站,突然显示如下文本和链接: 注意奇怪的字符。 这些链接是使用 EasyAzon 插件生成的,但我不认为...

回答 1 投票 0

在linux上用mingw构建程序并在wine下运行---UTF-8支持

我有打印一些字符的C 代码。我希望看到这些字符被打印出来,而不是字母汤, #包括 int main() { const char* test = "希腊语: αβ...

回答 1 投票 0

使用 utf-8 读取以 utf-8 编码的文件不起作用,但使用“windows-1252”或“iso-8859-1”读取同一文件可以

这里发生了什么?为什么当我使用 utf-8 读取文件时,它会在控制台中输出问号? 这是一个最小的工作示例: 导入java.io.File; 导入java.io.IOException; 导入...

回答 3 投票 0

REST Spring Boot 控制器中请求标头的编码

TLDR; 如果应用程序的默认字符集是 UTF-8,则在调用控制器方法时,某些 UTF-8 标头会被编码两次。 Spring MVC 中编码在哪里处理以及如何控制它? D...

回答 1 投票 0

通过StringBuilder为字符串添加字节顺序标记

如何向 StringBuilder 添加字节顺序标记? (我必须将字符串传递给另一个方法,该方法会将其保存为文件,但我无法修改该方法)。 我试过这个: var sb = 新的 StringBuil...

回答 4 投票 0

Git 无法从 UTF-8 编码为 UTF-16LE-BOM

我的存储库中有很多旧版 Windows 资源文件 (*.rc)。最初他们有 UTF-8、ASCII、UTF-16 或其他编码。而且我的仓库中没有 .gitattributes,所以 git 无法

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.