php – ord()不适用于utf-8

根据ISO 8859-1

€符号的小数值为128

我的PHP脚本编码是

echo mb_internal_encoding(); //ISO-8859-1

所以现在作为PHP

echo chr(128);  //Output exactly what i want '€'

echo ord('€');  //opposite it returns 226, it should be 128

为什么会这样?

解决方法:

根据WikipediaFileFormat,

> ISO-8859-1根本没有欧元符号
> ISO-8859-15在代码点164(0xA4)
> Windows-1252在代码点128(0x80)
> Unicode在代码点8364(0x20AC)处具有欧元符号
> UTF-8将其编码为0xE2 0x82 0xAC.第一个字节E2是十进制的226.

因此,您的源文件似乎以UTF-8编码(而ord()仅返回第一个字节),而您的输出则在Windows-1252中.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...