问题标签 [utf-7]

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.

0 投票
0 回答
161 浏览

c# - 从 TCP/Port 读取时使用正确的编码

我正在byte[]从 TCP/端口读取字节流 (),并将接收到的数组的一部分转换为char[]

假设我不熟悉端口的特性,也不熟悉该端口另一侧的环境。我只知道有一个端口。

我收到的部分数据是经过编码的英镑货币符号 (£)。当我使用 ASCII 编码进行转换时,这些符号作为?

但是,当我使用 UTF-7 时,一切正常:

我应该补充一点,在尝试 UTF-8 时,这是行不通的。

这是通过反复试验,我不完全确定为什么这可能有效。与其只是继续部署解决方案,我想我会尝试更多地了解为什么这可能会奏效。

仅仅是端口另一端的系统正在以 UTF-7 传输,还是发生了其他事情?

0 投票
1 回答
125 浏览

windows-phone-8 - 如何在 wp8 中解码 utf-7

Windows Phone 8 不支持 UTF-7。有没有办法像下面的 .NET 代码那样解码 UTF-7?

0 投票
3 回答
5116 浏览

java - Java 将 7 位字符集八位字节转换为可读字符串(来自 PDU SMS)

我正在接收来自 GSM 调制解调器的 PDU 格式的短信;TP-User-Data 是“C8329BFD06DDDF72363904”
,我得到的是:“�2����r69”,而发送的短信是“Hello World!”。

这是我的java代码:

0 投票
2 回答
556 浏览

php - 如果没有设置 htmlspecialchars 字符集,UTF-7 是否可能,尽管 HTTP 标头字符集?

我想仔细检查一下,并相信这对其他人有帮助。如果有人在他们的代码中使用 htmlspecialchars($var) 并且正在运行 5.4 之前的 PHP 版本,那么他们对 utf-7 XSS 是开放的。这是给定的。我是否正确假设该站点仍然对 utf-7 XSS 开放,即使标头内容字符集是 utf-8,因为 PHP 的服务器内容字符集默认为 iso-8859-1?

编辑:有人问我希望从中获利什么。我希望确保项目不会受到 utf-7 的影响,因为一些程序员似乎不倾向于设置 htmlspecialchars 的第三个参数,即字符集。如果您了解我提到的服务器字符集以及它如何适合 utf-7,那么我真的可以使用您的帮助。

0 投票
1 回答
166 浏览

unicode - UTF-7 表示中单个 16 位字符的最大字节数

char以 UTF-7 格式保存的单个 UTF-16 字符(2 字节字符,即 .NET 中的类型)的最大字节大小是多少?

这是我在维基百科上找到的:

5 对于单字节字符运行中的孤立案例。对于运行 2 2⁄3 每个字符加上填充使其成为整数字节加上两个开始和结束运行

http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings#Seven-bit_environments

0 投票
3 回答
945 浏览

c# - Encoding.UTF7.GetBytes 不反转 Encoding.UTF7.GetString()

我想我错过了一些基本的东西,但我真的被这个弄糊涂了,搜索也没能找到我任何东西。

我有以下...

然后我执行以下操作

Bytes2 最终为 54 而不是 24 字节,它们是完全不同的字节。

现在当然这无论如何都是毫无意义的代码,但是我在诊断为什么我从 Encoding.UTF7.GetString 获得的字节不是我期望的字节时把它放进去。我已经明白这是我的代码没有给出预期结果的原因。

现在我很困惑。我知道如果我不使用编码,那么来自字符串的 GetBytes 的结果不能被依赖为一组特定的字节,但我正在使用编码并且仍然得到这种差异。

谁能启发我了解我所缺少的东西?

编辑:结论是它不是 UTF7。我正在使用高级语言编程的应用程序将原始字节数组写入数据库中的 varbinary。我无法控制如何将原始字符串编码为该语言的 varbinaries。我正在尝试阅读它们并在主应用程序的一个小的 C# 插件中处理它们,这是我遇到这个问题的地方。我尝试过的其他编码也没有给出正确的结果。

0 投票
1 回答
1432 浏览

javascript - 如何在 JavaScript 或 Java 中将常规字符串格式(ascii?)转换为 UTF-7?

因此,我试图了解通常被视为“<”的特殊字符如何在 UTF-7 中转换为“+ADw-”。

是否有在线工具或 JavaScript 或 Java 中的内置库可以做到这一点?

这背后的数学原理是什么?我知道 UTF-7 使用 7bits 来存储字符,所以我猜 '+ADw-' 只是 ASCII 中 '<' 的数字表示?意思是,如果您将“<”转换为数字,那将等于“+ADw-”作为数字?

谢谢!

0 投票
1 回答
692 浏览

c# - File.ReadAllText 使用 UTF-7 忽略 + 字符

我在磁盘上有一个由程序写入的文件,其中一些数据用 Json 编码。

我正在使用 C# 的 File.ReadAllText(string path, Encoding encoding) 稍后读取它。由于不相关的原因,我们必须使用 UTF-7。

然后我们的行看起来像这样:

它工作得很好,写然后读,基本上我们需要的一切。唯一的例外是加号 (+)。如果我们的文件中有 + 号,则此代码将返回整个字符串,忽略所有这些。所以

变成

我检查了文件字节,+ 号确实是 char 0x2B,这是 UTF-7 中的正确字符(在 UTF-8 中也是相同的字符,不确定是否重要)。

我无法弄清楚为什么它们在阅读时会消失。

为了测试,我尝试阅读它

它工作得很好。字符没有消失。

我可能做错了什么,我怎么能让 File.ReadAllText(fileName, Encoding.UTF7) 不忽略这些字符?

到目前为止,我还没有找到另一个有这个问题的字符,但我显然没有测试所有的字符。

0 投票
1 回答
156 浏览

javascript - 使用原生 Javascript 进行 IMAP UTF-7 转换

我一直在尝试处理一个好的代码,该代码将提供用于将 IMAP UTF7 邮箱转换为 JS 到 UTF-16 字符串的 Javascript。似乎没有完成这样的工作。你们中的任何人都建造了其中一个或有一个可以分享吗?我很高兴建立一个,但如果有人已经拥有它,我不想这样做。

当我查看规范时,'&' 和 '-' 之间的字符串看起来首先用 base64 解码,然后解码为 UTF-16 Big Endian,然后将非 ascii 文本编码为 UTF-16 部分的逆过程基数 64。对于文件安全操作,base64 +/ 表示为 +,而不是其他情况下的 +_。

让我知道是否有人有解决方案,我很乐意使用它或编写一个并将其放入 Github!

谢谢

维杰

0 投票
2 回答
227 浏览

c# - 为什么 UTF-7 解释变音符号正确而 UTF-8 不正确?

我有一个 Base64 字符串,我想将其转换并解码为 UTF-8,如下所示:

这是因为字符串中的元音变音需要正确显示。我面临的问题是,当我使用 UTF-8 作为编码时,未正确处理变音符号。但是当我使用 UTF-7

一切正常。

为什么?UTF-8 不应该能够处理变音符号吗?