javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

c#-将UTF-8转换为base64字符串

我正在尝试将base64转换为base64字符串。

示例:我在base64中有“ abcdef ==”。实际上,它是base64字符串的“表示形式”。

如何检索“ abcdef ==“ base64”字符串(请注意,我不希望从base64获得“ abcdef ==”“翻译”,我想获取以base64编码的字符串,即“ abcdef ==”)。

编辑
我的问题似乎不清楚,这里是一个重新表述:

我的字节数组(假设我将其命名为A)由base64字符串表示。 将A转换为base64会得到“ abcdef ==“。

此字符串表示形式是通过UTF-8中的套接字发送的(请注意,字符串表示形式在UTF-8和base64中是完全相同的)。 因此,我收到一个UTF-8消息,它在UTF-8中包含“ whatever / abcdef == / whatever”。

因此,我需要从此套接字消息中检索base64“ abcedf ==”字符串,以获取A。

我希望这更加清楚!

trans by 2020-02-22T16:12:36Z

CodeGo.net> WebClient的Unicode-哪个UTF8?

当我创建一个WebClient来使用一些RESTful xml时,我可以通过2种方式指定unicode编码:

WebClient wc = new WebClient ();
wc.Encoding = Encoding.UTF8;
wc.Encoding = UTF8Encoding.UTF8;

哪个正确/更好?

trans by 2020-02-22T04:31:34Z

php-如何删除多个UTF-8 BOM序列

使用PHP5(cgi)从文件系统输出模板文件,并出现吐出原始HTML的问题。

private function fetch($name) {
    $path = $this->j->config['template_path'] . $name . '.html';
    if (!file_exists($path)) {
        dbgerror('Could not find the template "' . $name . '" in ' . $path);
    }
    $f = fopen($path, 'r');
    $t = fread($f, filesize($path));
    fclose($f);
    if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
        $t = substr($t, 3);
    }
    return $t;
}

即使我添加了BOM修复程序,但Firefox接受它仍存在问题。 您可以在此处查看实时副本:[http://ircb.in/jisti/](以及要检出的模板文件,我将其放在[http://ircb.in/jisti/home.html]中) )

任何想法如何解决这个问题? o_o

trans by 2020-02-14T06:36:13Z

Eclipse中的Java属性UTF-8编码

最近,我不得不将我正在使用的web应用程序的编码从utf8切换到2745066840706778778。除了属性文件之外,一切都进行得很顺利。 我在eclipse.ini中添加了-Dfile.encoding=UTF-8,普通文件工作正常。 但是,属性显示一些奇怪的行为。

如果我从Notepad ++复制utf8编码的属性并将其粘贴到Eclipse中,它们将显示并正常工作。 重新打开属性文件时,我看到一些Unicode字符,而不是正确的字符,例如:

Zur\u00EF\u00BF\u00BDck instead of Zurück

但应用仍然可以正常运行。如果我开始编辑属性,添加一些特殊字符并保存,它们将正确显示,但是它们不起作用,并且以前所有可用的特殊字符都不再起作用。

当我将本地版本与CVS进行比较时,我可以在远程文件上正确看到特殊字符,并且在更新后,我再次开始:应用程序可以运行,但是Eclipse显示Unicode字符。

我尝试通过右键单击文件编码并选择“其他:UTF8”来更改文件编码,但这没有帮助。 它还说:“由内容决定:ISO-8859-1”

我正在使用基于Eclipse 3.3的Java 6和Jboss Developer

我可以通过在Notepad ++中编辑属性并将其粘贴到Eclipse中来使用它,但是如果有人可以帮助我在Eclipse中修复此问题,我将不胜感激。

trans by 2020-02-13T01:14:27Z

utf 8-UTF-8和Unicode,0xC0和0x80是什么?

在过去的几天里,我一直在阅读有关Unicode和UTF-8的信息,我经常遇到类似于以下内容的按位比较:

int strlen_utf8(char *s) 
{
  int i = 0, j = 0;
  while (s[i]) 
  {
    if ((s[i] & 0xc0) != 0x80) j++;
    i++;
  }
  return j;
}

有人可以澄清与0xc0的比较并检查它是否是最高有效位吗?

谢谢!

编辑:ANDed,而不是比较,使用了错误的词;)

trans by 2020-02-11T22:33:13Z

shell-如何在Python <3中将UTF-8编码的文本打印到控制台?

我正在运行最新的Linux系统,其中所有语言环境均为UTF-8:

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
...
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

现在,我想将UTF-8编码的内容写入控制台。

现在,Python使用UTF-8进行FS编码,但坚持使用ASCII作为默认编码:-(

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> sys.getfilesystemencoding()
'UTF-8'

我认为最好的(干净的)方法是设置sys.stdout环境变量。 但似乎Python忽略了它。 至少在我的系统上,即使设置了envvar之后,我仍然会一直将StreamWriter作为默认编码。

# tried this in ~/.bashrc and ~/.profile (also sourced them)
# and on the commandline before running python
export PYTHONIOENCODING=UTF-8

如果我在脚本开始时执行以下操作,则可以:

>>> import sys
>>> reload(sys)  # to enable `setdefaultencoding` again
<module 'sys' (built-in)>
>>> sys.setdefaultencoding("UTF-8")
>>> sys.getdefaultencoding()
'UTF-8'

但是这种方法似乎很不干净。 那么,实现此目标的好方法是什么?

解决方法

而不是更改默认编码-这不是一个好主意(请参阅mesilliac的答案),我只是将sys.stdout包装为StreamWriter,如下所示:

sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)

请参见此要点,以获取处理它的小型实用程序功能。

trans by 2020-02-09T15:48:10Z

java-如何通过ServletOutputStream以UTF-8编码发送字符

我的servlet代码如下所示:

response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
ServletOutputStream out = response.getOutputStream();
out.println(...MY-UTF-8 CODE...);

...

然后我得到错误:

java.io.CharConversionException: Not an ISO 8859-1 character: ש
 javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
 javax.servlet.ServletOutputStream.println(ServletOutputStream.java:242)
 rtm.servlets.CampaignLogicServlet.doPost(CampaignLogicServlet.java:68)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

如何切换Servlet输出流的字符集?

trans by 2020-02-08T05:45:25Z

python 3.x-UnicodeEncodeError:'charmap'编解码器无法编码字符'\ u2010':字符映射到<undefined>

这个问题已经在这里有了答案:

  • 为什么Python无法识别我的utf-8编码的源文件?                                     1个答案

尝试打印从python 3.4中使用硒请求的网站获得的“Á”时,我一直收到UnicodeEncodeError。

我已经在.py文件的顶部定义了

# -*- coding: utf-8 -*-

def是这样的:

from selenium import webdriver

b = webdriver.Firefox()
b.get('http://fisica.uniandes.edu.co/personal/profesores-de-planta')
dataProf = b.find_elements_by_css_selector('td[width="508"]')
for dato in dataProf:
        print(datos.text)

和例外:

Traceback (most recent call last):
  File "C:/Users/Andres/Desktop/scrap/scrap.py", line 444, in <module>
    dar_p_fisica()
  File "C:/Users/Andres/Desktop/scrap/scrap.py", line 390, in dar_p_fisica
    print(datos.text) #.encode().decode('ascii', 'ignore')
  File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2010' in position 173: character maps to <undefined>

提前致谢

trans by 2020-02-07T17:47:07Z

jQuery-Javascript:将Unicode字符串转换为十六进制

我正在尝试将Unicode字符串转换为javascript中的十六进制表示形式。

这就是我所拥有的:

function convertFromHex(hex) {
    var hex = hex.toString();//force conversion
    var str = '';
    for (var i = 0; i < hex.length; i += 2)
        str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
    return str;
}

function convertToHex(str) {
    var hex = '';
    for(var i=0;i<str.length;i++) {
        hex += ''+str.charCodeAt(i).toString(16);
    }
    return hex;
}

但是如果对像中文这样的unicode字符失败的话;

输入:汉字

输出:ªo[[W

有任何想法吗? 可以用javascript完成吗?

trans by 2020-02-06T06:41:16Z

C#-UTF8 / UTF16和Base64在编码方面有什么区别

在。 C#

我们可以使用以下类进行编码:

  • System.Text.Encoding.UTF16
  • System.Text.Encoding.UTF16
  • Convert.From(To)Base64String

为什么没有Convert.From(To)Base64String

我们只能使用Convert.From(To)Base64String方法,base64有什么特别之处?

我可以说base64与UTF-8是相同的编码方法吗? 还是UTF-8是base64之一?

trans by 2020-01-30T13:27:01Z

如何在Scala或Java中读取混合编码的文本文件?

我正在尝试解析CSV文件,最好使用weka.core.converters.CSVLoader。但是,我拥有的文件不是有效的UTF-8文件。它主要是UTF-8文件,但某些字段值使用不同的编码,因此,没有编码可以证明整个文件是有效的,但我还是要解析它。除了使用像Weka这样的Java库之外,我主要在Scala中工作。我什至无法读取scala.io.us中的文件。例如

Source.
  fromFile(filename)("UTF-8").
  foreach(print);

抛出:

    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)

我非常乐意丢掉所有无效字符或用一些假人替换它们。我将有很多这样的文本以各种方式处理并可能需要将数据传递到各种第三方库。理想的解决方案是采用某种全局设置导致所有底层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)

感谢+ Esailija为我指出正确的方向。这导致我转向如何检测非法的UTF-8字节序列以将其替换为java inputstream?它提供了核心的Java解决方案。 在Scala中,我可以通过将编码解码器隐式设置为默认行为。 我认为可以通过将隐式编解码器定义放在包对象中,使它成为整个包的默认行为。

trans by 2020-01-28T15:26:20Z

文件-如何在Ruby中将字符串转换为UTF8

我正在写一个使用Hpricot的爬虫。 它从某些网页下载字符串列表,然后尝试将其写入文件。 编码有问题:

"\xC3" from ASCII-8BIT to UTF-8

我有呈现在网页上并以这种方式打印的项目:

Développement

str.encoding返回UTF-8,因此force_encoding('UTF-8')没有帮助。 如何将其转换为可读的UTF-8?

trans by 2020-01-24T22:06:27Z

Ruby on Rails“ UTF-8中无效的字节序列”是由于b

我的中国漫游器在滚动我的网站时触发了一些错误:[http://www.easou.com/search/spider.html]。

我的应用程序的版本都与Ruby 1.9.3和Rails 3.2.X一起使用

这里是stacktrace:

An ArgumentError occurred in listings#show:

  invalid byte sequence in UTF-8
  rack (1.4.5) lib/rack/utils.rb:104:in `normalize_params'


-------------------------------
Request:
-------------------------------

  * URL       : http://www.my-website.com
  * IP address: X.X.X.X
  * Parameters: {"action"=>"show", "controller"=>"listings", "id"=>"location-t7-villeurbanne--58"}
  * Rails root: /.../releases/20140708150222
  * Timestamp : 2014-07-09 02:57:43 +0200

-------------------------------
Backtrace:
-------------------------------

  rack (1.4.5) lib/rack/utils.rb:104:in `normalize_params'
  rack (1.4.5) lib/rack/utils.rb:96:in `block in parse_nested_query'
  rack (1.4.5) lib/rack/utils.rb:93:in `each'
  rack (1.4.5) lib/rack/utils.rb:93:in `parse_nested_query'
  rack (1.4.5) lib/rack/request.rb:332:in `parse_query'
  actionpack (3.2.18) lib/action_dispatch/http/request.rb:275:in `parse_query'
  rack (1.4.5) lib/rack/request.rb:209:in `POST'
  actionpack (3.2.18) lib/action_dispatch/http/request.rb:237:in `POST'
  actionpack (3.2.18) lib/action_dispatch/http/parameters.rb:10:in `parameters'

-------------------------------
Session:
-------------------------------

  * session id: nil
  * data: {}

-------------------------------
Environment:
-------------------------------

  * CONTENT_LENGTH                                 : 514
  * CONTENT_TYPE                                   : application/x-www-form-urlencoded
  * HTTP_ACCEPT                                    : text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
  * HTTP_ACCEPT_ENCODING                           : gzip, deflate
  * HTTP_ACCEPT_LANGUAGE                           : zh;q=0.9,en;q=0.8
  * HTTP_CONNECTION                                : close
  * HTTP_HOST                                      : www.my-website.com
  * HTTP_REFER                                     : http://www.my-website.com/
  * HTTP_USER_AGENT                                : Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)
  * ORIGINAL_FULLPATH                              : /
  * PASSENGER_APP_SPAWNER_IDLE_TIME                : -1
  * PASSENGER_APP_TYPE                             : rack
  * PASSENGER_CONNECT_PASSWORD                     : [FILTERED]
  * PASSENGER_DEBUGGER                             : false
  * PASSENGER_ENVIRONMENT                          : production
  * PASSENGER_FRAMEWORK_SPAWNER_IDLE_TIME          : -1
  * PASSENGER_FRIENDLY_ERROR_PAGES                 : true
  * PASSENGER_GROUP                                :
  * PASSENGER_MAX_REQUESTS                         : 0
  * PASSENGER_MIN_INSTANCES                        : 1
  * PASSENGER_SHOW_VERSION_IN_HEADER               : true
  * PASSENGER_SPAWN_METHOD                         : smart-lv2
  * PASSENGER_USER                                 :
  * PASSENGER_USE_GLOBAL_QUEUE                     : true
  * PATH_INFO                                      : /
  * QUERY_STRING                                   :
  * REMOTE_ADDR                                    : 183.60.212.153
  * REMOTE_PORT                                    : 52997
  * REQUEST_METHOD                                 : GET
  * REQUEST_URI                                    : /
  * SCGI                                           : 1
  * SCRIPT_NAME                                    :
  * SERVER_PORT                                    : 80
  * SERVER_PROTOCOL                                : HTTP/1.1
  * SERVER_SOFTWARE                                : nginx/1.2.6
  * UNION_STATION_SUPPORT                          : false
  * _                                              : _
  * action_controller.instance                     : listings#show
  * action_dispatch.backtrace_cleaner              : #<Rails::BacktraceCleaner:0x000000056e8660>
  * action_dispatch.cookies                        : #<ActionDispatch::Cookies::CookieJar:0x00000006564e28>
  * action_dispatch.logger                         : #<ActiveSupport::TaggedLogging:0x0000000318aff8>
  * action_dispatch.parameter_filter               : [:password, /RAW_POST_DATA/, /RAW_POST_DATA/, /RAW_POST_DATA/]
  * action_dispatch.remote_ip                      : 183.60.212.153
  * action_dispatch.request.content_type           : application/x-www-form-urlencoded
  * action_dispatch.request.parameters             : {"action"=>"show", "controller"=>"listings", "id"=>"location-t7-villeurbanne--58"}
  * action_dispatch.request.path_parameters        : {:action=>"show", :controller=>"listings", :id=>"location-t7-villeurbanne--58"}
  * action_dispatch.request.query_parameters       : {}
  * action_dispatch.request.request_parameters     : {}
  * action_dispatch.request.unsigned_session_cookie: {}
  * action_dispatch.request_id                     : 9f8afbc8ff142f91ddbd9cabee3629f3
  * action_dispatch.routes                         : #<ActionDispatch::Routing::RouteSet:0x0000000339f370>
  * action_dispatch.show_detailed_exceptions       : false
  * action_dispatch.show_exceptions                : true
  * rack-cache.allow_reload                        : false
  * rack-cache.allow_revalidate                    : false
  * rack-cache.cache_key                           : Rack::Cache::Key
  * rack-cache.default_ttl                         : 0
  * rack-cache.entitystore                         : rails:/
  * rack-cache.ignore_headers                      : ["Set-Cookie"]
  * rack-cache.metastore                           : rails:/
  * rack-cache.private_headers                     : ["Authorization", "Cookie"]
  * rack-cache.storage                             : #<Rack::Cache::Storage:0x000000039c5768>
  * rack-cache.use_native_ttl                      : false
  * rack-cache.verbose                             : false
  * rack.errors                                    : #<IO:0x000000006592a8>
  * rack.input                                     : #<PhusionPassenger::Utils::RewindableInput:0x0000000655b3a0>
  * rack.multiprocess                              : true
  * rack.multithread                               : false
  * rack.request.cookie_hash                       : {}
  * rack.request.form_hash                         :
  * rack.request.form_input                        : #<PhusionPassenger::Utils::RewindableInput:0x0000000655b3a0>
  * rack.request.form_vars                         : ���W�"��陷q�B��)���
�F��P   Z� 8�� &   G\y�P��u�T ed �.�%�mxEAẳ\�d*�Hg�     �C賳�lj��� � U 1��]pgt�P�
  Ɗ    ��c"� ��LX��D���HR�y��p`6�l���lN�P �l�S����`V4y��c����X2�        &JO!��*p �l��-�гU��w }g�ԍk�� (� F J��  q�:�5G�Jh�pί����ࡃ]                                                                                                                                                                                                                                                                           �z�h���� d }�}
  * rack.request.query_hash                        : {}
  * rack.request.query_string                      :
  * rack.run_once                                  : false
  * rack.session                                   : {}
  * rack.session.options                           : {:path=>"/", :domain=>nil, :expire_after=>nil, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :coder=>#<Rack::Session::Cookie::Base64::Marshal:0x000000034d4ad8>, :id=>nil}
  * rack.url_scheme                                : http
  * rack.version                                   : [1, 0]

如您所见,URL中没有无效的utf-8,而仅在rack.request.form_vars中。 我每天大约有一百个错误,所有与此类似。

因此,我尝试使用类似以下的方法在utf8-cleaner中强制utf-8:

class RackFormVarsSanitizer
  def initialize(app)
    @app = app
  end

  def call(env)
    if env["rack.request.form_vars"] 
      env["rack.request.form_vars"] = env["rack.request.form_vars"].force_encoding('UTF-8')
    end
    @app.call(env)
  end
end

我称之为utf8-cleaner

config.middleware.use "RackFormVarsSanitizer"

它似乎不起作用,因为我已经有错误。 问题是我无法在开发模式下进行测试,因为我不知道如何设置utf8-cleaner

我安装了utf8-cleaner gem,但是它不能解决任何问题。

有人有想法解决这个问题吗? 还是在开发中触发它?

trans by 2020-01-23T22:04:27Z

通过脚本在vim中将文件编码更改为utf-8

我的服务器从Debian 4升级到5后,我才被淘汰。我们切换到UTF-8环境,现在遇到问题,无法在浏览器上正确打印文本,因为所有文件都采用非utf8编码,例如iso-8859-1,ascii等。

我尝试了许多不同的脚本。

我尝试的第一个是“ iconv”。 那是行不通的,它更改了内容,但是所包含的文件仍然不是UTF8。

我通过apt-get安装的enca,encamv,convmv和其他一些工具也存在同样的问题。

然后,我发现了一个使用chardet Universal Detector模块的python代码,用于检测文件的编码(工作正常),但是使用unicode类或编解码器类将其保存为utf-8则没有任何错误。

我发现将文件及其内容转换为UTF-8的唯一方法是vi。

这些是我对一个文件执行的步骤:

vi filename.php
:set bomb
:set fileencoding=utf-8
:wq

而已。 那一个完美。 但是如何通过脚本来运行它。我想编写一个脚本(Linux Shell),该脚本遍历包含所有php文件的目录,然后使用vi与上述命令进行转换。由于我需要启动vi应用程序,因此我不知道如何执行以下操作:

"vi --run-command=':set bomb, :set fileencoding=utf-8' filename.php"

希望可以有人帮帮我。

trans by 2020-01-22T01:53:59Z

mysql-如何修复双编码的UTF8字符(在utf-8表中)

先前的ñ是在CSV文件经过ñ编码的前提下运行的。 在此导入期间,将多字节字符解释为两个单个字符,然后再次使用utf-8进行编码。

这种双重编码产生了类似于ñ的异常,而不是ñ

如何更正这些字符串?

trans by 2020-01-16T20:57:59Z

unicode-编写UTF-8编码CSV文件的Python DictWriter

  1. 我有一个包含unicode字符串的词典列表。
  2. DictWriter可以将字典列表写入CSV文件。
  3. 我希望CSV文件以UTF8编码。
  4. DictWriter模块无法处理将Unicode字符串转换为UTF8的问题。
  5. DictWriter模块文档提供了一个将所有内容转换为UTF8的示例:

    DictWriter
  6. 它还具有DictWriter类。

但是...我如何使DictWriter与这些一起工作? 他们不是必须将自己插入其中,以捕获反汇编的字典并对其进行编码,然后再将其写入文件吗? 我不明白

trans by 2020-01-16T05:48:05Z

编码-如何用C#用UTF-8以外的代码页写出文本文件?

我想写一个文本文件。

而不是默认的UTF-8,我想将其编码为ISO-8859-1,即代码页28591。我不知道如何执行此操作...

我用以下非常简单的代码写出文件:

using (StreamWriter sw = File.CreateText(myfilename))
{
    sw.WriteLine("my text...");
    sw.Close();
}
trans by 2020-01-16T02:56:49Z

如何更改csharp项目(Visual Studio / MSBuild计算机)中的源文件编码?

有没有办法强迫VS始终使用Unicode,而不是怪异的ISO东西?

我正在使用在Vista(波兰语言环境)上使用Visual Studio 2008的winapp csproject。 当我在Win Server 2003(英语语言环境)上构建项目时出现问题,然后波兰语变音符号消失了。

我调查了此问题是由不正确的源文件编码引起的。 看起来源文件未使用UTF-8编码。

trans by 2020-01-15T19:14:37Z

C ++-不建议使用的标头<codecvt>替换

有点前景:我的任务需要将UTF-8 XML文件转换为UTF-16(当然具有正确的标头)。 因此,我搜索了将UTF-8转换为UTF-16的常用方法,发现应该使用<codecvt>中的模板。

但是现在不推荐使用它了,我想知道执行相同任务的新通用方式是什么?

(完全不介意使用Boost,但除此之外,我更喜欢尽可能接近标准库。)

trans by 2020-01-14T09:41:23Z

utf 8-PHP DomDocument无法处理utf-8字符(☆)

网络服务器正在以utf-8编码提供响应,所有文件都以utf-8编码保存,我所知的所有设置都已设置为utf-8编码。

这是一个快速程序,用于测试输出是否有效:

<?php
$html = <<<HTML
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Test!</title>
</head>
<body>
    <h1>☆ Hello ☆ World ☆</h1>
</body>
</html>
HTML;

$dom = new DomDocument("1.0", "utf-8");
$dom->loadHTML($html);

header("Content-Type: text/html; charset=utf-8");
echo($dom->saveHTML());

该程序的输出为:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Test!</title></head><body>
    <h1>&acirc;&#152;&#134; Hello &acirc;&#152;&#134; World &acirc;&#152;&#134;</h1>
</body></html>

呈现为:

你好-世界-


我可能做错了什么? 我必须告诉DomDocument正确处理utf-8的具体程度是多少?

trans by 2020-01-13T21:12:20Z

1 2 3 4 5 6 7 下一页 共7页